UPDATE
Обновление записей в таблице.
Синтаксис
UPDATE [ ONLY ] таблица SET
поле = выражение [. ...]
[ FROM список_источников ]
[ WHERE условие ]
Параметры
- ONLY. Обновление выполняется только в указанной таблице и не распространяется
на производные таблицы (если они существуют).
- таблица. Имя обновляемой таблицы.
- поле. Имя поля, обновляемого в таблице.
- выражение. Выражение, результат которого присваивается указанному
полю.
- список_источников. Таблица, представление или другой источник данных
(см. описание команды SELECT). Расширенная версия команды UPDATE в PostgreSQL
позволяет задействовать значения полей других таблиц в условии WHERE;
чтобы данная возможность работала правильно, необходимо перечислить
используемые таблицы в секции FROM.
- условие. В секции WHERE задается критерий отбора обновляемых записей.
Условие представляет собой произвольное выражение с результатом типа
boolean.
Результаты
- UPDATE число. Сообщение выдается при успешном выполнении команды
UPDATE. В параметре число сообщается количество модифицированных записей.
Например, сообщение UPDATE 0 означает, что содержимое таблицы не изменялось.
- ERROR: Relation 'таблица' does not exist. Ошибка— таблицас указанным
именем не найдена в текущей базе данных.
- ERROR: Relation 'таблица' does not have attribute 'поле'. Ошибка
— поле с указанным именем не существует в таблице, использованной в
секции SET.
- ERROR: Cannot update a view without an appropriate rule. Ошибка —
попытка обновить представление (вместо таблицы) без правила, указывающего,
как поступать в подобных ситуациях.
Описание
Команда UPDATE изменяет значения полей во всех записях, удовлетворяющих
условию, заданному в секции WHERE. Команда также позволяет модифицировать
поля-массивы, в которых можно обновить отдельный элемент, интервал или
весь массив. Чтобы обновление выполнялось только в указанной таблице,
следует включить в команду ключевое слово ONLY; в противном случае обновление
распространяется на все производные таблицы.
ПРИМЕЧАНИЕ
При обновлении таблиц необходимо наличие прав записи для
обновляемых полей и прав чтения для полей, используемых в секции WHERE.
Пример
В следующем примере значение поля stock в записи книги с заданным кодом
ISBN увеличивается на 1:
booktown=# UPDATE stock SET stock = stock + 1 WHERE isbn
= '0385121679':
UPDATE 1 |