gpt4 book ai didi

mysql - 如何更新具有重复主键的表?

转载 作者:行者123 更新时间:2023-11-29 10:44:42 24 4
gpt4 key购买 nike

我试图用其他数据库的另一个表更新一个表,我上次更新时创建了一个函数来保存一个产品中的多个类别,所以,当我运行旧脚本来更新我的表时,这是一个约束出现错误。我了解这种情况以及为什么会发生这种情况,但是如何允许更新具有重复数据的表?有没有办法禁用约束?

我的查询

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_idcategory_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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com