【问题标题】:Error 1062 in mysqlmysql中的错误1062
【发布时间】:2017-03-08 10:09:44
【问题描述】:
INSERT INTO order SELECT * FROM order WHERE date > DATE_SUB(NOW(), INTERVAL 6 MONTH);
我收到错误代码:1062
Duplicate entry '5890738' for key 'PRIMARY'
如何解决这个问题,因为我只需要 6 个月的数据,但此表包含 6 年的数据?
【问题讨论】:
标签:
mysql
mysql-error-1062
【解决方案1】:
你得到的错误意味着你尝试插入 id(主键和唯一键)两次,以解决你必须使用类似的东西:
INSERT INTO order(all your columns except Id_column) SELECT all your columns except Id_column FROM order WHERE date > DATE_SUB(NOW(), INTERVAL 6 MONTH);
注意:id 必须是自增列
【解决方案2】:
使用 MySQL 查询:
INSERT INTO order(all your columns except Id_column)
SELECT all your columns except Id_column
FROM order WHERE date > DATE_SUB(NOW(), INTERVAL 6 MONTH);