结果变量是一种返回我所读过的null的简单方法。但是,以下方法不起作用。之前,我尝试IF NOT EXIST then '(SELECT min(classID) FROM Classes WHERE title LIKE CoName)'
也无济于事。
问题代码:
Set result = (SELECT min(classID) FROM Classes WHERE title LIKE CoName);
IF result is null THEN
INSERT INTO Classes (title)
VALUES (CoName);
END IF;
这来自一个存储过程,用于从旧表填充新表。 if语句用于检查新值是否已添加到新表中。该过程的其余部分可以在没有if语句的情况下工作,但会提供重复的条目。
最佳答案
如果要忽略插入错误,请在CoName
上创建唯一索引:
create unique index classes_coname on classes(coname);
然后在插入时忽略错误。以下内容将忽略所有错误:
INSERT IGNORE INTO Classes(title)
VALUES (CoName);
以下是重复键错误的更具体说明:
INSERT IGNORE INTO Classes(title)
VALUES (CoName)
ON DUPLICATE KEY UPDATE title = CoName;
关于mysql - 检查IF IS NULL或IF NOT EXIST,导致SQL语法错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23531340/