我正在尝试执行以下查询:
INSERT INTO `xguilds_relations` ( `id1`, `id2`, `dominance` ) VALUES ( ?, ?, ? )
ON CONFLICT DO UPDATE SET `dominance` = VALUES(`dominance`);
但是,这导致出现以下语法错误:
SQL错误或缺少数据库(“ UPDATE”附近:语法错误)
我浏览Google和Stackoverflow已有一段时间了,发现所有内容仅从SQLite 3.24.0开始才支持UPSERT。但是,我正在使用3.30.1,但仍然无法正常工作。
我想要实现的是:
-使用提供的
xguilds_relations
(表包含id
或类似名称)和提供的CHECK (id1 > id2)
将新行插入dominance
-如果具有提供的
id
的行已经存在,请使用新的dominance
值更新该行 最佳答案
我不认为SQLite支持VALUES
。这样行吗?
INSERT INTO xguilds_relations ( id1, id2, dominance )
VALUES ( ?, ?, ? )
ON CONFLICT DO UPDATE SET dominance = excluded.dominance;
您可能还希望包括冲突引用的列。
关于java - 使用最新版本时upsert的语法错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61011063/