Иллюстрированный самоучитель по PostgreSQL

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
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.