簡體   English   中英

用於 INSERT INTO ... 的 mySQL 語法 ... 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM