Я нахожусь в процессе создания программы, которая позволяет выполнять поиск из приложения.Затем приложение загрузит результаты поиска и сохранит их в базе данных.Я использовал URL в качестве первичного ключа, чтобы убедиться, что я не вводил одни и те же данные дважды (поскольку URL-адреса обязательно являются уникальным идентификатором), однако это вызвало несколько проблем.База данных выдаст ошибку и произойдет сбой при попытке сохранить строку с тем же URL-адресом.Я полагаю, это хорошо, так как я могу поместить свой оператор вставки в блок try / catch.У меня есть несколько вопросов:
Что я должен ловить (попробуйте блок catch), чтобы обнаружить, когда возникает ошибка, подобная этой, когда элемент, который он пытается вставить в БД, уже хранится?
Это работает с простым подходом «добавлять каждый результат поиска в БД 1 за раз».Что делать, если я хочу сделать транзакцию базы данных и добавить ~ 25 за раз.Как бы я выяснил, какой из них был ошибкой, и как лучше всего это сделать?Есть ли способ продолжить добавление остальных, у которых не было проблемы?
Создать уникальный индекс или ограничение столбца .
Вы можете попробовать использовать INSERT OR REPLACE http://www.sqlite.org/lang_insert.html
INSERT OR REPLACE
Что ж, вы можете запустить select для таблицы, чтобы увидеть, есть ли там URL, прежде чем пытаться вставить его.
select
Но, возможно, вам все равно следует попытаться более изящно справиться с ошибками вставки.