首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用重复主键更新表?

如何使用重复主键更新表?
EN

Stack Overflow用户
提问于 2017-06-29 13:01:37
回答 1查看 513关注 0票数 0

我试图用其他数据库的另一个表更新一个表,最后一次更新时,我创建了一个函数,以便在一个产品中保存多个类别,因此,当运行旧脚本更新我的表时,会出现一个约束错误。我理解这种情况和为什么会发生这种情况,但是我如何允许使用重复数据的表进行更新呢?是否有禁用约束的方法?

我的查询

代码语言:javascript
运行
复制
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

我试着用它:

代码语言:javascript
运行
复制
SET GLOBAL FOREIGN_KEY_CHECKS=0;

但还是不起作用。有什么建议吗?谢谢已经提前了!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-29 15:11:42

如果表名反映了表的用途,则主键应该是

PRIMARY KEY(product_id, category_id)

为了避免重复使用相同的product_idcategory_id的几行。

您可以在此更新中使用IGNORE

代码语言:javascript
运行
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44825902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档