作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个数据库:groupofficecom
有两个表:
cal_events: id(Primary key), name, start_time, description,....
cf_cal_events: model_id (Primary key), col_1, col_2, col_3,....
我正在尝试执行以下代码:
INSERT INTO groupofficecom.cf_cal_events (model_id,col_1,col_2,....)
SELECT groupofficecom.cal_events.ID, '0' AS col_1, '' AS col_2,....
FROM groupofficecom.cal_events
但它一直给我错误 #1062 - 键“PRIMARY”的重复条目“155”(“155”是 cal_events 中的“id”)
我希望主键 model_id
与 cal_events 中的 id
值相同,因为表 cf_cal_events 只是 cal_events 的互补字段(这是一个程序,所以我无法更改其数据库,它将在第一次更新时消失)
谢谢大家!
最佳答案
这意味着目标表中已经存在具有该 id 的条目。首先,检查一下这是怎么回事。
然后,根据需要使用此处描述的解决方案之一: "INSERT IGNORE" vs "INSERT ... ON DUPLICATE KEY UPDATE"即更新或忽略。
您应该将 ORDER BY 与您所选择的内容和上面的解决方案结合使用,以选择忽略哪些条目(除了第一个条目之外的所有条目)。
您也可能想要完全不同的东西,即使用 UPDATE 语句而不是 INSERT 语句。
关于mysql - INSERT INTO...SELECT - 主键冲突 - 错误 #1062,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24260342/
我是一名优秀的程序员,十分优秀!