gpt4 book ai didi

MySql - 仅在某些字段尚未插入时插入

转载 作者:行者123 更新时间:2023-11-29 09:13:36 26 4
gpt4 key购买 nike

我有一个 MySql 表,其中包含 field1(id)、field2(name) 和 field3(surname)。

只有在尚未插入 field2 和 field3 对时才插入该值。我该怎么做?

INSERT IGNORE 不起作用,因为 field1 是 int autoincrement 并且每个 INSERT 都不同。

附注我想摆脱 REPLACE INTO,因为如果数据已经存在,那么“重写”数据就没有意义

干杯

编辑

表结构id = INT 主要名称 = VARCHAR姓氏 = VARCHAR

名字和姓氏不能都是唯一的(我可以有 2 个具有相同值的名字或姓氏)。我想要的是名字和姓氏对的值不同。

是:

0 马可·科迪(OK)

1 马可·达吉恩 (OK)

2 法比奥·科迪(OK)

3 Marco Cordi(不行,已定义)

最佳答案

为了让别人为您回答这个问题,您需要发布您的实际表结构(包括任何存在的主键/唯一键)。

如果您的表没有主键/唯一键,则执行此操作的唯一方法是运行 SELECT 并查看是否返回任何行,如果没有找到行,则执行 INSERT。

如果您希望表中的行在 field2 和 field3 上是唯一的,那么您应该在这些列上创建唯一索引(可以使用 ALTER TABLE 查询来完成)。

编辑:您需要一个唯一的索引,不是分别在每个字段上,而是在两个字段上。您想要运行此查询:

ALTER TABLE `yourtable`
ADD UNIQUE INDEX `unique_name` (`field2`, `field3`);

完成此操作后,您可以使用 INSERT IGNORE。

关于MySql - 仅在某些字段尚未插入时插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4806470/

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