gpt4 book ai didi

mysql insert only if not exists 不起作用

转载 作者:行者123 更新时间:2023-11-28 23:28:14 25 4
gpt4 key购买 nike

我阅读了一些有关此主题的主题并尝试了很多,但我的代码不起作用。如果数据集已存在于我的表中,我不想将其插入两次。

我的表“WORD”有一些示例数据(id 是自动递增的)。

id | customer_id | category_id | word | comment
1 3 5 life null
2 5 5 motor tbd
3 null 2 Day week

我只想检查 customer_id、category_id、word。如果新行具有完全相同的 customer_id、category_id 和单词,我不想插入它。 comment 和 id 无关紧要。

我的代码:

insert into word (customer_id, category_id, word) 
select * from (select null, 2, 'Day') as tmp
where not exists (select * from word where customer_id=null and category_id=2 and word='Day')
limit 1

这是插入:(他正在插入它,尽管我有一行 (id =3) 为 null/2/Day。新插入的评论为空,另一个评论周,但这无关紧要。

我的错误在哪里?

最佳答案

select * from word where customer_id=null

应该是

select * from word where customer_id IS NULL

请参阅手册中的此站点:http://dev.mysql.com/doc/refman/5.7/en/working-with-null.html

如果您的用例允许约束,则在您的语句中规避变通方法的一种方法是在这些列上设置唯一索引。 http://dev.mysql.com/doc/refman/5.7/en/create-index.html

A UNIQUE index creates a constraint such that all values in the index must be distinct. An error occurs if you try to add a new row with a key value that matches an existing row. For all engines, a UNIQUE index permits multiple NULL values for columns that can contain NULL. If you specify a prefix value for a column in a UNIQUE index, the column values must be unique within the prefix.

关于mysql insert only if not exists 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38425619/

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