通过是否依赖唯一索引判重,可分为两种情况:
一、依赖索引判重
1、replace into,如果不存在就添加,如果存在就修改
replace into table(field1,field2,field3) values(1,2,3);
2、insert ignore,如果存在就忽略,如果不存在就添加
insert ignore into table(field1,field2,field3) values(1,2,3);
3、on duplicate key update,如果不存在就添加,如果存在就修改
insert into table(field1,field2,field3) values(1,2,3) on duplicate key update field1=11,field2=22,field3=33;
二、不依赖索引判重,而是依赖表中某个字段,其中DUAL是临时表,可以直接这么使用
INSERT INTO table SELECT 1,2,3 FROM DUAL WHERE NOT EXISTS(SELECT field1 FROM table WHERE field1 = 11);
参考内容:
https://blog.csdn.net/qq_42475949/article/details/116709280
https://www.cnblogs.com/monogem/p/9802942.html