【问题标题】: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 必须是自增列

【讨论】:

  • 您假设ID 列是自动递增的?
  • @sagi 是的,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);

【讨论】:

    猜你喜欢
    • 2021-11-18
    • 2018-11-27
    • 2011-08-12
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    相关资源
    最近更新 更多