mysql的replace to
2023-04-12 本文已影响0人
flyjar
replace into 可以说是 insert 的增强版,但由于其独特的特性,误用会带来一些副作用,其功能与 insert 功能类似,不同点是replace into 首先尝试插入数据到表中
- 如果数据已经存在(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据(特性:先删除再插入) ;
否则,直接执行插入新数据,插入新记录只是插入了某些业务指定字段,还存在一些原先不想更新的字段,若执行了,删除后新增则会导致部分数据丢失。 - (采用自增ID的情况)如果是主键ID存在,则主键ID会采用replace to中的ID,不会再增加。如果是非主键的唯一索引重复了,新增的数据,id会增加,会出现id非连续的问题