0
我试图更新一个表与其他数据库的另一个表,我上次更新我创建了一个函数来保存一个产品中的多个类别,所以,当我运行旧脚本来更新我的表,一个约束错误出现。我了解情况以及为什么会发生这种情况,但我如何允许与重复数据表进行更新?有没有办法禁用约束?如何使用重复主键更新表?
我查询
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;
但仍然没有工作。任何建议?提前致谢!
主键必须是唯一的。您不能在同一个表中拥有相同主键的两行。关闭约束检查不会解决这个问题。您必须确保您不要尝试插入具有与现有行相同的主键的新行。 – Jesper
那么,你不能有一个重复的主键。这是主键的属性之一。所以你需要生成一个在某种程度上没有不同的新密钥。 – Jaydee
你必须在脑海中融合概念。主键是一回事,外键是另一回事。无论如何,你基本上都在问如何让两栋房子拥有相同的街道地址 - 为了什么? –