Всегда перезаписывать, если существует?

#sql #sqlite

#sql #sqlite

Вопрос:

Мой стол выглядит как:

 _id, subID, textInput, attribute1, attribute2
  

Когда я создаю новую запись, она сохраняет 5 строк… все с одним и тем же идентификатором SubID. Если я создам другую запись с тем же идентификатором SubID, это сохранит 5 строк, что даст мне в общей сложности 10 строк для этого идентификатора SubID.

Чего бы я хотел, так это если SubID уже существует, просто перезаписать строки, которые уже есть. Как бы я это сделал?

Ответ №1:

Вы можете использовать INSERT ИЛИ REPLACE, но вам придется поместить уникальный индекс в SubID.

В качестве альтернативы, вы можете запросить таблицу для идентификатора SubID и, если он найден, использовать вместо этого простое ОБНОВЛЕНИЕ. Если не найден, используйте стандартную вставку.

Ответ №2:

Попробуйте INSERT OR REPLACE команду. Смотрите http://www.sqlite.org/lang_conflict.html подробнее.