gpt4 book ai didi

mysql - 插入到目标表时跳过mysql中的重复值

转载 作者:行者123 更新时间:2023-11-29 17:17:27 25 4
gpt4 key购买 nike

您好,我正在尝试将数据插入到另一个表中,并且我想跳过目标表中的重复记录。我使用了以下 mysql 查询。

insert into adggtnz.`reg02_maininfo`(farmermobile,farmername,farmergender,origin) 
select * from (SELECT mobile_no,name,sex,'EADD' FROM EADD.farmer)
as tmp where not exists (select farmermobile from adggeth.`reg02_maininfo` where farmermobile = tmp.mobile_no)

问题是,当存在重复项时,查询未完全运行,我如何避免以下错误

16:09:03    insert into adggtnz.`reg02_maininfo`(farmermobile,farmername,farmergender,origin)          select * from (SELECT mobile_no,name,sex,'EADD' FROM EADD.farmer)         as tmp where not exists (select farmermobile from adggeth.`reg02_maininfo` where farmermobile = tmp.mobile_no) Error Code: 1062. Duplicate entry '0724961552' for key 'PRIMARY'    0.828 sec

请帮我修改我的查询

最佳答案

如果您想避免重复条目,则永远不要先查询以查看记录是否存在。您放置一个唯一约束并使用INSERT IGNOREINSERT INTO ... ON DUPLICATE KEY UPDATE

第一种方法的问题是您可能(并且将会)得到误报。

在您的特定情况下,修复非常简单。您需要在INSERT之后添加IGNORE。如果重复,这将跳过该记录并继续下一条记录。

INSERT IGNORE INTO adggtnz.`reg02_maininfo`(farmermobile,farmername,farmergender,origin) 
SELECT mobile_no, name, sex, 'EADD' FROM EADD.farmer

关于mysql - 插入到目标表时跳过mysql中的重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51479728/

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