Инструкция UPDATE cоветы и хитрости PostgreSQL
Платформа PostgreSQL поддерживает стандартный синтаксис ANSI с парой небольших изменений. Поддерживается добавление предложения FROM. К другим изменениям относится отсутствие поддержки ключевого слова ARRAY, но наличие поддержки самих массивов. Синтаксис инструкции UPDATE в PostgreSQL следующий.
UPDATE. [ONLY] {имя_тзблицы | имя_представления
SET имя_столбца1={DEFAULT | NULL | скалярное_выражение}
имя_столбца2={DEFAULT | NULL | скалярное_вьражение}[…]
[FROM {таблица1 [AS псевдоним], таблица2 [AS псевдоним] [, …]}] [WHERE условие_поиска | WHERE CURRENT OF имя_курсора]
Большинство синтаксических элементов соответствует стандарту ANSI. Единственный нестандартный элемент следующий.
FROM
Предоставляет возможность создать для указания обновляемых строк высоко избирательный критерий на основе соединения. Предложение FROM не нужно, если при указании строк используется только одна таблица — целевая.
В следующем примере нам нужно обновить значение joblvl для тех сотрудников, чей job_id равен 12, a min_Ivl равен 25. Этого можно добиться при помощи большого, сложного подзапроса, а можно создать соединение при помощи предложения FROM.
UPDATE employee SET job_lvl=80 FROM employee AS e, jobs AS j WHERE e.job_id=j.job_id
AND j.job_id=12 AND].min_lvl=25;
Все прочие аспекты стандарта ANSI поддерживаются в полной мере.