gpt4 book ai didi

mysql自动防止冗余插入

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

我有一张 table

create table adjacencies(
relationId int not null primary key auto_increment,
parent int not null,
child int not null,
pathLen int not null
) ;

我正在插入大量条目,例如

insert into adjacencies( parent, child, pathLen )
select a, b, c from something where condition ;

所以有时当我运行我的插入查询时,(父,子)关系可能已经存在并被复制。坏消息。

我不想在 (parent, child) 上创建主键,因为这会导致硬失败(查询失败)。

我想要的是一个软失败,如果试图插入表中已经存在的(父,子)对(即只有那对被忽略,其余的查询将正常进行)。

在 MySQL 中执行此操作的最佳方法是什么?

(* 想知道 why is there a relationId member in this table? )

最佳答案

围绕父列和子列创建一个复合唯一键。然后改为发出这样的查询:

insert ignore into adjacencies( parent, child, pathLen )
select a, b, c from something where condition ;

IGNORE 子句会将重复键错误变成警告。

关于mysql自动防止冗余插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4495945/

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