Как мне сделать атомарный INSERT, если не существует эквивалент в sqlite3? - PullRequest
0 голосов
/ 21 октября 2010

Вопросы говорят обо всем на самом деле.

У меня есть таблица, и я хочу вставить строку, если она еще не существует. или мне просто сделать вставку, и если ограничение ключа нарушено, игнорировать его?

Ответы [ 2 ]

3 голосов
/ 21 октября 2010

Использовать INSERT OR IGNORE: http://www.sqlite.org/lang_insert.html

0 голосов
/ 21 октября 2010

Используйте триггер, который срабатывает перед вставкой и удаляет дублирующую строку, что-то вроде ...

CREATE TRIGGER trigger_name
BEFORE INSERT on your_table
FOR EACH ROW WHEN EXISTS (SELECT * FROM your_table WHERE id = NEW.id)
BEGIN
  SELECT RAISE(IGNORE);
END;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...