结果变量是一种返回我读过的null的hacky方法。但是,以下不起作用。早些时候我试过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语句的情况下工作,但提供了重复的条目。
答案 0 :(得分:0)
如果您尝试忽略插入时的错误,请在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;