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