sqlite, ОБНОВЛЕНИЕ ИЛИ ЗАМЕНА - PullRequest
10 голосов
/ 15 апреля 2009

Я делаю что-то вроде

ОБНОВЛЕНИЕ ИЛИ ЗАМЕНА ТАКОЙ УСТАНОВКИ a = 1, b = 2 ГДЕ c = 3

Я ожидаю, что если он не существует, он будет вставлен в БД. Но ничего не происходит, и я не получаю ошибок. Как я могу вставить данные, заменить их, если они уже существуют, и использовать местоположение для условия (вместо замены уникального идентификатора BC)

Ответы [ 2 ]

17 голосов
/ 23 ноября 2010

Осторожно, INSERT OR REPLACE не имеет ожидаемого поведения «ОБНОВЛЕНИЕ ИЛИ ЗАМЕНА».

Если вы не установите значения для всех файлов, INSERT OR REPLACE заменит их значениями по умолчанию, тогда как с UPDATE вы ожидаете сохранить старые значения.

См. Мой ответ здесь для примера: SQLite - UPSERT * not * INSERT или REPLACE

10 голосов
/ 15 апреля 2009

Попробуйте

INSERT OR REPLACE INTO [someTable] (a,b) VALUES(1,2) WHERE c = '3'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...