SQL обновить / заменить строку, оставив некоторые столбцы без изменений - PullRequest
1 голос
/ 29 января 2011

Я хотел бы выполнить обновление / замену строки, чтобы столбцы, для которых не указаны значения, остались такими же, как, например, для таблицы из 4 столбцов:

-- 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" ); 

Возможно ли это? Если нет, я предполагаю, что альтернативой было бы извлечь существующую строку, объединить данные, как требуется, затем выполнить замену, но это похоже на то, что БД должен сделать ?? вещь схемы?

(для sqlite3, используемого из скрипта bash)

1 Ответ

3 голосов
/ 29 января 2011

Используйте инструкцию UPDATE, например:

UPDATE game_data
  SET col_a = 'a', col_b = 'b'
WHERE id= 99

Это установит значения для col_a и col_b для строки с идентификатором 99, оставив все остальные значения столбца без изменений.

(ПРИМЕЧАНИЕ: REPLACE () - это функция замены строк).

ПРИМЕЧАНИЕ: REPLACE, к сожалению, означает разные вещи на разных диалектах SQL.

...