我有一个 MySQL 表,其 ID
列设置为 auto_increment
。该表已包含一些值。
我需要导入大约 4000 个新行,在某些情况下,它们具有与表中已存在的相同 ID,因此 MySQL 返回此错误:
Error Code: 1062. Duplicate entry '7' for key 'PRIMARY'
我该如何处理?
下面我发布了一段代码,涉及我需要导入的文件:
INSERT INTO `wp_posts`
(`ID`,`post_author`,`post_date`,`post_date_gmt`,`post_content`,`post_title`,`post_excerpt`,`post_status`,...)
VALUES
(7,1,'2015-04-24 11:19:41'....);
[以此类推 4000 行]
我需要的是ID值相同自动变化。
最佳答案
如果您想在 ID 匹配时更新现有行,请尝试添加一个 ON DUPLICATE KEY UPDATE
子句:
INSERT INTO wp_posts (ID, post_author, post_date, post_date_gmt, post_content,
post_title, post_excerpt, post_status, ...)
VALUES (7, 1, '2015-04-24 11:19:41', ...)
ON DUPLICATE KEY UPDATE
post_author=VALUES(post_author), post_date=VALUES(post_date),
post_date_gmt=VALUES(post_date_gmt), post_content=VALUES(post_content),
post_title=VALUES(post_title), post_excerpt=VALUES(post_excerpt),
post_status=VALUES(post_status), ...
关于mysql - 键 'n' 的重复条目 'primary',重复时更改 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35429176/