选择sqlite_version();
INSERT INTO用户(uuid,test_field)VALUES('uuid1','1.0);
在冲突(uuid)上插入用户(uuid)值('uuid1')进行更新设置test_field ='1.1';
以上结果导致:
3.8.11.1
好
错误:“开”附近:语法错误
为什么无法识别ON CONFLICT的ON字
答案 0 :(得分:0)
ON CONFLICT
的美称是UPSERT,仅在SQLite 3.24.0中引入。
按照:-
UPSERT是对INSERT的特殊语法添加,导致INSERT 如果INSERT违反了 唯一性约束。 UPSERT不是标准的SQL。 SQLite中的UPSERT 遵循PostgreSQL建立的语法。增加了UPSERT语法 到SQLite版本3.24.0(2018-06-04)。
SQL As Understood By SQLite - upsert
因此,它不能在SQLite 3.8.11.1中使用,因此 ON 附近的SYNTAX错误,因为在该上下文中它不是公认的关键字。