基本上,我必须从特定表中复制 2 列并将它们添加到另一个表中。我可以这样做:
Insert into biz_ctx_rule (from_biz_ctx_id, top_level_bie_id)
select distinct biz_ctx_id, owner_top_level_abie_id
FROM abie;
我收到以下错误:
Error Code: 1062. Duplicate entry '20-52' for key 'biz_ctx_rule_unicity'
问题是我在 (from_biz_ctx_id, top_level_bie_id) 上添加了唯一性约束。 有没有一种简单的方法可以使用 UNIQUE() 来做到这一点,或者我必须尝试一些连接?
谢谢。
最佳答案
如果问题是插入重复项,则使用重复键更新
:
Insert into biz_ctx_rule (from_biz_ctx_id, top_level_bie_id)
select distinct biz_ctx_id, owner_top_level_abie_id
from abie
on duplicate key update from_biz_ctx_id = values(from_biz_ctx_id);
更新
基本上是一个空操作,但它可以防止返回错误,因此插入
会成功。
关于mysql - SQL 将列从一个表复制到另一个表中 - 唯一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57959380/