SQLite'IF NOT EXISTS'语法错误

时间:2015-10-07 18:37:17

标签: sql sqlite

解决此错误的其他任何问题似乎都不适用于我。我的疑问是:

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 个答案:

答案 0 :(得分:3)

尝试使用类似这样的内容而不是IF语句:

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

答案 1 :(得分:1)

SQLite根本就没有这样的IF运营商。最近的事情是CASE ...... http://www.sqlite.org/lang_expr.html#case,但这并不适用于你的情况。

"Insert if not exists" statement in SQLite中的答案适用于此处,作为insert-if-not-exists语句。