Mam zapytanie jak to (w zależności):Nie aktualizuj kolumnę jeśli wartość jest null aktualizacja
UPDATE some_table SET
column_1 = param_1,
column_2 = param_2,
column_3 = param_3,
column_4 = param_4,
column_5 = param_5
WHERE id = some_id;
Gdzie param_x
jest parametrem mojej funkcji. Czy istnieje sposób NIE aktualizowania kolumn, dla których parametr jest NULL
? Na przykład - jeśli param_4
i param_5
są NULL
, zaktualizuj tylko pierwsze trzy kolumny i pozostaw stare wartości dla column_4
i column_5
.
Tak jak ja to robię teraz to:
SELECT * INTO temp_row FROM some_table WHERE id = some_id;
UPDATE some_table SET
column_1 = COALESCE(param_1, temp_row.column_1),
column_2 = COALESCE(param_2, temp_row.column_2),
column_3 = COALESCE(param_3, temp_row.column_3),
column_4 = COALESCE(param_4, temp_row.column_4),
column_5 = COALESCE(param_5, temp_row.column_5)
WHERE id = some_id;
Czy istnieje lepszy sposób?
myślę, że to do zrobienia. –