sqlite в Android вставить новую строку с некоторыми значениями повторяется - PullRequest
0 голосов
/ 08 ноября 2011

: у меня есть эта таблица:

id            |      name          |      chapter      |    book

 1                  hamlet                  I               Hamlet

 2                  Ismael                  IV              Moby Dick

Я ожидаю поведения для новых значений:

То же имя && та же книга => Символ существует, поэтому тот же идентификатор, что и существующий:

 2                   Ismael                   X              Moby Dick

То же имя && другая книга => Персонаж не существует, поэтому меняется идентификатор:

 3                   Ismael                  XX              The Bible     

Мой вопрос:

Должен ли я сделать запрос перед тем, как вставить новые значения, а затем вставить новое значение?

или есть способ сделать это автоматически, настроив триггер или что-то еще?

Мой оператор CREATE TABLE

    db.execSQL("CREATE TABLE characters (id INTEGER NOT NULL , 
   name TEXT NOT NULL , chapter TEXT NOT NULL , book TEXT NOT NULL );");

1 Ответ

0 голосов
/ 08 ноября 2011

Я думаю, что самый элегантный способ сделать это - выделить свойства ваших строк, которые позволяют идентифицировать их УНИКАЛЬНО.Допустим, например, что name + book делает строку уникальной, затем вы можете объединить эти строки в один идентификатор в вашем объекте, добавить столбец в базу данных, поместить и проиндексировать его, а также выполнять поиск по этому индексу, когда хотите вставить новые элементы..

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