Руководствуясь документацией создал таблицу с уникальным индексом и полями, содержащими игнорирование ошибок при дублирующих записях.
Вот фидл:
sqlfiddle.com/#!7/77dc6/5
По логике два из трех insert должны создать записи в таблице, проигнорировав duplicate error.
Однако, этого не происходит.
Первые три страницы в гугле на эту тему (все ссылки сиреневые :) ) утверждают, что я все делаю правильно. Но не работает. Почему?
[РЕШЕНИЕ]
Условие ON CONFLICT IGNORE (возможные варианты в
документации) может быть использовано в нескольких случаях.
1) когда уникальным должна быть одна колонка;
CREATE TABLE User (
id integer PRIMARY KEY,
first_name text NOT NULL UNIQUE ON CONFLICT IGNORE,
last_name text NOT NULL
);
2) когда уникальными должны быть несколько колонок, т. е. составной индекс
CREATE TABLE User (
id integer PRIMARY KEY,
first_name text NOT NULL,
last_name text NOT NULL,
UNIQUE(first_name, last_name)
ON CONFLICT IGNORE
);