我无法使用SQLite运行此查询

if 0<(select COUNT(*) from Repetition where (Word='behnam' and Topic='mine'))
begin
 update Repetition set Counts=1+ (select Counts from Repetition where (Word='behnam' and Topic='mine'))
end
else
begin
    insert Repetition(Word,Topic,Counts)values('behnam','mine',1)
end

它说“IF附近的语法错误”
我该如何解决这个问题

最佳答案

SQLite没有IF语句(see the list of supported queries)

Insetad,查看 ERIC B 关于另一个thread的建议。您实际上正在考虑执行UPSERT(如果记录存在,则为UPSdate;如果不存在,则为INSERT)。 Eric B.有一个很好的示例,说明了如何使用SQLite中的“插入或替换”功能以SQLite语法执行此操作。基本上,您将执行以下操作:

INSERT OR REPLACE INTO Repetition (Word, Topic, Counts)
VALUES (  'behnam', 'mine',
          coalesce((select Counts + 1 from Repetition
                   where Word = 'behnam', AND Topic = 'mine)
                   ,1)
       )

10-07 13:08