Składnia:
UPDATE [ OR conflict-algorithm ] [catalog-name.]table-name SET assignment[, assignment]* [ WHERE expr ] assignment: column-name = expr
Instrukcja UPDATE służy do zmiany wartości kolumn w wybranych wierszach tabeli. Każdy element assignment zawiera nazwę kolumny po lewej stronie znaku równości i dowolne wyrażenie po prawej stronie. W wyrażeniach mogą występować wartości innych kolumn. Wartości wyrażeń są wyznaczane zanim zmienione zostaną wartości podanych kolumn w tabeli.
Za pomocą opcjonalnej klauzuli WHERE można określić podzbiór wierszy, które mają być zmienione.
Opcjonalny element conflict-algorithm pozwala na określenie alternatywnego sposobu rozwiązywania konfliktów w przypadku naruszenia ograniczeń nałożonych na tabelę, który będzie miał zastosowanie tylko dla danej instrukcji UPDATE. Więcej informacji można znaleźć w opisie klauzuli ON CONFLICT.
Przykład 33.23. Uzupełnianie brakujących wartości na podstawie innej tabeli za pomocą instrukcji UPDATE
table 'tmp_client':
format age INTEGER
id age otherdata
1 None 'a'
2 None 'b'
3 None 'c'
table 'tmp_age':
id age
1 35
2 76
sql:
UPDATE tmp_client SET
age = ( SELECT tmp_age.age FROM tmp_age where tmp_client.id = tmp_age.id )
sql tmp_client_out:
SELECT * FROM tmp_client
print tmp_client_out
Output:
id | age | otherdata | +--+------+-----------+-- 1 | 35 | a | 2 | 76 | b | 3 | None | c |