2015-10-07 49 views
2

解決此錯誤的其他任何問題似乎都適用於我。我的查詢是:SQLite'IF NOT EXISTS'語法錯誤

IF NOT EXISTS (SELECT 1 FROM Configuration WHERE key = 'CookieCount') 
BEGIN 
    INSERT INTO Configuration (key, value) 
    VALUES ('CookieCount', '0') 
END 

和我的錯誤信息是:「無法準備的語句(1附近的‘IF’:語法錯誤)」

我在Postgres的這個工作:http://sqlfiddle.com/#!15/b14ef/2/0 但這並不在SQLite中工作,我需要它與兩個工作。

+2

SQLite沒有一個程序SQL系統,如'IF'和'BEGIN'。不過,對於這一點,你可以使用帶有WHERE條件的'INSERT ... SELECT'來檢查密鑰是否存在。 –

+0

您的問題中顯示的代碼不會在Postgres中運行(並且它不是SQLFiddle中的代碼)。 –

回答

3

嘗試使用這樣的事情,而不是IF語句:

INSERT INTO Configuration (key, value) 
SELECT 'CookieCount', '0' 
WHERE NOT EXISTS(SELECT 1 FROM Configuration WHERE key = 'CookieCount');