Уточните, пожалуйста, таблицу против запроса, основанного на условиях конфликта в sqlite? - PullRequest
1 голос
/ 16 марта 2011

Я читал об урегулировании конфликтов SQLite и не совсем уверен в одном аспекте.

Если у меня есть PRIMARY KEY ON CONFLICT IGNORE как часть таблицы, мне все еще нужно поместить INSERT OR IGNORE в запрос на вставку, чтобы он игнорировал конфликты, или он заимствует это из определения таблицы?

Что-то, что я читал, что-то говорило об определениях таблицы, влияющих только на операции над всей таблицей, но я не уверен, что это имеет смысл.

1 Ответ

2 голосов
/ 16 марта 2011

Рассматривали ли вы тестирование, прежде чем задавать вопрос?

sqlite> create table test (id integer primary key on conflict ignore);
sqlite> insert into test values (1);
sqlite> insert into test values (1);
sqlite> insert into test values (1);
sqlite> insert into test values (1);
sqlite> select * from test;
1

sqlite> drop table test;
sqlite> create table test (id integer primary key);
sqlite> insert into test values (1);
sqlite> insert into test values (1);
Error: PRIMARY KEY must be unique
sqlite> insert or ignore into test values (1);
sqlite> insert or ignore into test values (1);
sqlite> select * from test;
1
...