INSERT INTO的mySQL语法...不存在

时间:2017-01-06 19:09:32

标签: mysql sql syntax

我正在尝试使用列快捷方式插入教师(如果它不存在)。是的,我知道,这应该很容易......

这就是我的代码: (我使用MySQL 5.6.27)

INSERT INTO faculties(shortcut) SELECT 'BWI-M' 
WHERE NOT EXISTS (SELECT shortcut FROM faculties WHERE shortcut = 'BWI-M');

一个变种:

BEGIN TRY
    INSERT INTO faculties(shortcut)
    VALUES('BWI-')
END TRY
BEGIN CATCH
    IF ERROR_NUMBER() <> 2627
     RAISERROR etc
END CATCH;

两者都抛出语法错误。我觉得我真的很蠢,我从文档中复制了查询,但它不起作用。

1 个答案:

答案 0 :(得分:1)

您在查询中缺少an子句。它应该是

FROM

(或)您可以使用INSERT INTO faculties(shortcut) SELECT 'BWI-M' FROM some_table WHERE NOT EXISTS (SELECT 1 FROM faculties WHERE shortcut = 'BWI-M'); 表格

dual

虽然没有看到INSERT INTO faculties(shortcut) SELECT 'BWI-M' FROM dual .... 条件的任何目的。你可以说是

WHERE NOT EXISTS