在我的表中,id
是主键,但此代码在sqlite3中不起作用:
insert into text (id,text) VALUES(150574,'Hello') ON DUPLICATE KEY UPDATE 'text' = 'good'
请帮帮我。
答案 0 :(得分:8)
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
)
)
答案 1 :(得分:0)
自从SQLite 3.24.0版本(于2018-06-04发布)以来,ON CONFLICT
支持以PostgreSQL为蓝本。有关更多详细信息,请参见documentation。