gpt4 book ai didi

mysql - 如果不存在则SQL

转载 作者:行者123 更新时间:2023-11-30 00:26:25 25 4
gpt4 key购买 nike

当我尝试在 MySQL 上执行此请求时,第 1 行的 IF NOT EXISTS 出现 SQL 语法错误,并且我不明白为什么。

IF NOT EXISTS (SELECT * FROM `my_table` WHERE first_name = 'Testfn')
BEGIN
INSERT INTO `my_table` (first_name)
VALUES ('Testfn')
END;

仅当 my_table 中没有其他相同的名字时,我才尝试插入first_name。

我也尝试过这种语法,但仍然出现错误 1064“您的 SQL 语法有错误”:

IF NOT EXISTS (SELECT * FROM `my_table` WHERE first_name = 'Testfn') THEN
INSERT INTO `my_table` (first_name)
VALUES ('Testfn')
END IF;

我分别尝试了SELECT * FROMmy_tableWHERE first_name = 'Testfn',并且它有效。

这样也行不通:

INSERT INTO `my_table` (first_name)
VALUES ('Testfn')
WHERE NOT EXISTS (SELECT * FROM `my_table` WHERE first_name = 'Testfn');

编辑:名字在数据库中是唯一的。

最佳答案

您不需要写列名,无需指定即可尝试插入,因为我们已经在上面检查了条件。所以基本上你可以使用 Merge Statement 来做到这一点喜欢。

MERGE INTO my_table
USING (
SELECT first_name
) t
ON t.first_name = my_table.first_name
WHEN NOT MATCHED THEN
INSERT (first_name) VALUES (t.first_name);

希望这对您有帮助!

关于mysql - 如果不存在则SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22837186/

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