On Duplicate Key在SQLite中不起作用

时间:2014-05-13 03:52:02

标签: sqlite duplicates primary-key

在我的表中,id是主键,但此代码在sqlite3中不起作用:

insert into text (id,text) VALUES(150574,'Hello') ON DUPLICATE KEY UPDATE 'text' = 'good'

请帮帮我。

2 个答案:

答案 0 :(得分:8)

SqLite中不存在

INSERT .... ON DUPLICATE。但您可以使用INSERT OR REPLACE来实现如下效果。

INSERT 
    OR REPLACE
INTO
    text (id, text)  
VALUES
    (150574,
        (SELECT
           CASE 
              WHEN exists(SELECT 1  FROM text WHERE id=150574)
              THEN 'good' 
              ELSE 'Hello' 
           END
         )
    )

参考:http://www.sqlite.org/lang_insert.html

答案 1 :(得分:0)

自从SQLite 3.24.0版本(于2018-06-04发布)以来,ON CONFLICT支持以PostgreSQL为蓝本。有关更多详细信息,请参见documentation