作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图用其他数据库的另一个表更新一个表,我上次更新时创建了一个函数来保存一个产品中的多个类别,所以,当我运行旧脚本来更新我的表时,这是一个约束出现错误。我了解这种情况以及为什么会发生这种情况,但是如何允许更新具有重复数据的表?有没有办法禁用约束?
我的查询
UPDATE novourbano.oc_product_to_category oc
INNER JOIN erp_product_category erp ON oc.product_id = erp.erp_productid
SET oc.product_id = erp.erp_productid,
oc.category_id = erp.erp_categoryid
WHERE oc.product_id <> 0
我尝试使用它:
SET GLOBAL FOREIGN_KEY_CHECKS=0;
但仍然无法正常工作。有什么建议吗?提前致谢!
最佳答案
如果表名称反射(reflect)了表的用途,则主键应该是
主键(product_id,category_id)
以避免重复,例如多行具有相同的 product_id
和 category_id
。
您可以使用IGNORE
来执行此更新:
UPDATE IGNORE novourbano.oc_product_to_category oc
INNER JOIN erp_product_category erp ON oc.product_id = erp.erp_productid
SET oc.product_id = erp.erp_productid,
oc.category_id = erp.erp_categoryid
关于mysql - 如何更新具有重复主键的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44825902/
我是一名优秀的程序员,十分优秀!