взрыв приложения с конфликтующим первичным ключом sql - PullRequest
1 голос
/ 31 августа 2010

У меня есть таблица в базе данных, где столбец _id является первичным ключом.Если я пытаюсь выполнить вставку в эту таблицу, используя _id, который уже существует, мое приложение вылетает.Как я могу это сделать?Есть ли особенное исключение, которое я могу съесть?Я пробовал SQLiteException безрезультатно.

Ответы [ 2 ]

0 голосов
/ 31 августа 2010

Я выяснил свою проблему.

Я сейчас использую insertOrThrow и ловлю исключения SQLiteException.Кроме того, я выбрасывал еще одно исключение вплоть до вершины, нигде его не поймав.Я сейчас ловлю и регистрирую это.

0 голосов
/ 31 августа 2010

По определению первичный ключ должен быть уникальным - одно значение должно ссылаться на одну строку.

Вы можете сделать только то, что хотите, изменив что-либо - либо структуру базы данных, так что этот столбец больше не определяется как первичный ключ (хотя, прежде чем сделать это, тщательно подумайте - любое приложение, написанное против старой схемы, примет при выборе на основе поля _id, один идентификатор приведет к одной строке, и вы нарушите это предположение и, скорее всего, приложение). Другое дело, чтобы изменить данные, чтобы дать им новый _id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...