Я хотел бы выполнить обновление/замену строки, чтобы столбцы, для которых значения не указаны, остаются такими, какими они были, например. для таблицы с четырьмя колонками:sql update/replace row, оставляющий некоторые столбцы незатронутыми
-- expecting row = 99|a|b|?
replace into game_data (id, col_a, col_b) values (99, "a", "b");
-- expecting row = 99|a|b2|c < a remains unchanged
replace into game_data (id, col_b, col_c) values (99, "b2", "c");
Возможно ли это? Если нет, я предполагаю, что альтернативой будет извлечение существующей строки, слияние данных по мере необходимости, а затем выполнение замены, но это похоже на что-то, что должен делать db? схема?
(для sqlite3 используется в Баш скрипт)
Учитывая, что запрос работает даже, должно быть совершенно очевидно, что 'REPLACE' не является строковой. Прочтите документы: http://www.sqlite.org/lang_replace.html –
А, правильно. Я смешиваю свои SQL-диалекты. Спасибо что подметил это. – payne
, который действительно работает так, как мне бы хотелось, это будет боль, чтобы построить утверждение. Ive сталкивается с другим сообщением по той же проблеме, в ответе упоминается второе требование, требуемое, и синтаксис выглядит несколько иначе. требуется двухчастное второе заявление? http://stackoverflow.com/questions/4677066/sql-a-query-to-insert-new-record-or-replace-only-some-fields – hanlonj