Просмотр страницы INSERT в SQLite http://www.sqlite.org/lang_insert.html.
Вы можете сделать это, используя следующий синтаксис
INSERT OR IGNORE INTO tablename ....
Пример
INSERT OR IGNORE INTO tablename(id, value, data) VALUES(2, 4562, 'Sample Data');
Примечание: Вам необходимо иметь КЛЮЧ на столбцах таблицы, которые однозначно идентифицируют строку.Только если попытается вставить дубликат KEY, INSERT OR IGNORE
не будет вставлять новую строку.
В приведенном выше примере, если у вас есть KEY
на id
, тогда другая строка с id = 2
не будет вставлен.
Если у вас KEY
только на id and value
, то комбинация id = 2 and value = 4562
приведет к тому, что новая строка не будет вставлена.
Короче, там должен быть ключом для уникальной идентификации ROW только тогда База данных узнает, что есть дубликат, который НЕ ДОЛЖЕН быть разрешен.
В противном случае если у вас нет КЛЮЧА, вы бынужно перейти на SELECT
и затем проверить, есть ли уже строка, маршрут.Но здесь также при любом условии, которое вы используете для столбцов, вы можете добавить их как KEY
к таблице и просто использовать INSERT OR IGNORE
. В SQLite невозможно изменить таблицу и добавить ограничение типаУНИКАЛЬНЫЙ или ПРАЙМАЙ КЛЮЧ.Для этого вам нужно воссоздать таблицу.Посмотрите этот FAQ на sqlite.org
http://sqlite.org/faq.html#q11