Мне нужно обновить строку таблицы, ЕСЛИ СУЩЕСТВУЕТ, иначе ВСТАВИТЬ новую строку. Я пытался:
INSERT OR REPLACE INTO table VALUES...
но если строка строки существует, этот оператор изменяет ROWID строки, а этого я пытаюсь избежать (мне нужен rowid :D)
Я также пытался найти способ получить какое-то возвращаемое значение из обновления, в случае, когда обновление имело место, но я до сих пор не понимаю, как... Если бы я мог получить возвращаемое значение из оператора обновления, я мог выбрать, продолжать ли вставку или нет.
Есть ли у вас какие-либо предложения или решения этой проблемы? Или мне нужно сделать копию ROWID и использовать ее вместо «чистой» таблицы ROWID?
Заранее спасибо, с уважением
ps :Я искал ЗДЕСЬ и мне было интересно, есть ли в sqlite специальное слово OUTPUT, но google мне не помог..
----РЕДАКТИРОВАТЬ после прочтения комментариев:
пример схемы таблицы
CREATE TABLE test (
table_id TEXT NOT NULL,
some_field TEXT NOT NULL,
PRIMARY KEY(table_id)
)
INSERT or REPLACE INTO test (table_id, some_field) VALUES ("foo","bar")