我正在尝试使用列快捷方式插入教师(如果它不存在)。是的,我知道,这应该很容易......
这就是我的代码: (我使用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;
两者都抛出语法错误。我觉得我真的很蠢,我从文档中复制了查询,但它不起作用。
答案 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