CREATE TABLE resource_sync
(
_id INTEGER UNIQUE ON CONFLICT REPLACE PRIMARY KEY,
status_id INTEGER,
result_id INTEGER
);
如果插入两个相等的_id
值,SQLite将抛出异常:
[13:39:48]在数据库上执行SQL查询时出错' test':UNIQUE 约束失败:resource_sync._id
但是,如果从表创建SQL中删除主键声明,它允许进行所需的替换。
为什么?
感谢。
答案 0 :(得分:1)
主键上忽略UNIQUE。
正确的语法,如documentation所示,是:
CREATE TABLE resource_sync
(
_id INTEGER PRIMARY KEY ON CONFLICT REPLACE,
status_id INTEGER,
result_id INTEGER
);