SQLite: обновить запись, если она существует, в противном случае вставить ее? - PullRequest
0 голосов
/ 03 июля 2010

Я попытался INSERT OR REPLACE INTO, но он не сохраняет идентификатор строки при замене записи для ее обновления.Другой вариант - сделать это в два этапа: INSERT OR IGNORE INTO, затем UPDATE, но я бы предпочел одношаговое решение.Поэтому мне интересно, есть ли в SQLite что-то вроде ключевого слова MERGE или других простых решений?

1 Ответ

1 голос
/ 03 июля 2010

Нет, SQLite не поддерживает MERGE или upsert.

Вы можете использовать свое двухэтапное решение, но вы, вероятно, действительно хотите, чтобы ROWID был столбцом первого классав вашем столе.Если вы объявите столбец как INTEGER PRIMARY KEY, это будет псевдоним для ROWID.Тогда INSERT OR REPLACE будет работать нормально.

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