mysql - 键 'n' 的重复条目 'primary',重复时更改 ID

标签 mysql database duplicates

我有一个 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/

相关文章:

mysql - 将 MAMP Pro 用户名和密码重置为 root/root

PHP不插入数据库

php - 为什么 fputcsv 会产生重复的列?

postgresql - 更新一对多关系中的重复项。

java - 如何处理重复的 block

mysql - 如何在 laravel 中使用 FIND_IN_SET 获取最后更新的记录?

java - 如何在 SQL 中按 block 进行分组?

php - MYSQL - 获取用户和最近的购买数据

database - 在单个作业中从多个数据库读取-hadoop

mysql - Spring : Cannot determine embedded database driver class for database type NONE