我有以下示例:
sqlite> create table FILES (FILENAME VARCHAR(1024) PRIMARY KEY NOT NULL ON CONFLICT IGNORE);
有了这个,我从文档中收集出一个违反这个主键的插入将被忽略。
但是没有发生,2。插入错误。
sqlite> insert into files values ('fileA');
sqlite> insert into files values ('fileA');
Error: UNIQUE constraint failed: FILES.FILENAME
那么,ON CONFLICT IGNORE如何在上表中工作,它的目的是什么?
(注意 - 我知道我也可以运行insert or ignore into files values ('fileA');
,这将被忽略,但问题是关于列定义。)
答案 0 :(得分:4)
冲突解决条款适用于NOT NULL约束,因此它只会忽略NULL值。
要忽略重复项,请在PRIMARY KEY约束后直接添加ON CONFLICT IGNORE。