![](/img/trans.png)
[英]mysql insert - skip duplicates syntax error - sprintf (WHERE NOT EXISTS )
[英]mySQL Syntax for INSERT INTO ... WHERE NOT EXISTS
如果不存在,我正在嘗試使用列快捷方式插入教員。 是的,我知道,這應該很容易...
這就是我的代碼:(我使用 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;
兩者都拋出語法錯誤。 我想我真的很愚蠢,我從文檔中復制了查詢,但它不起作用。
您的查詢中缺少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
條件的任何目的。 你大概可以說
INSERT INTO faculties(shortcut) VALUES('BWI-M')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.