来源: mysql中插入数据时Duplicate entry ” for key ‘PRIMARY’的解决方案_duplicate entry ‘579’ for key ‘primary-CSDN博客
该问题是插入数据表中遇到键重复
1.IGNORE
INSERT IGNORE INTO Table_name(…..) VALUES(1,1),(2,2),(3,3);
使用IGNORE,如果插入的记录中存在重复值会忽略重复值的该记录行,不影响其他行的插入。
2.REPLACE
REPLACE INTO Table_name() VALUES(1,1),(2,2),(3,3)
使用replace当插入的记录遇到主键或者唯一重复时先删除表中重复的记录行再插入
3.*ON DUPLICATE KEY UPDATE *NAME1=VALUES(ID)+1
INSERT TO Table_name() VALUES(1,1),(1,2) ON DUPLICATE KEY UPDATE NAME1=NAME1+1;
ON DUPLICATE KEY UPDATE后面使用VALUES指的是插入记录的值,而不使用VALUES指的是表的自身值。其后执行的UPDATE更新的记录是WHERE重复的主键或唯一键的ID。
以上三种方法均支持标准的INSERT语法,包括INSERT INTO…VALUES,INSERT INTO…SET,INSERT INTO…SELECT。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/zhangyr_student/article/details/80119238