Самоучитель по SQL-сервер в Linux



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




Книжный магазин