Обновление единственной записи

Изменить цвет детали Р2 на желтый, увеличить ее вес на 5 и установить значение города «неизвестен» (NULL).

UPDATE P

SET ЦВЕТ = 'Желтый',

ВЕС = ВЕС + 5,

ГОРОД = NULL

WHERE НОМЕР_ДЕТАЛИ = 'Р2';

Для каждой записи, которая должна быть обновлена (т. е. для каждой записи, которая удовлетворяет предикату WHERE, или для всех записей, если фраза WHERE опущена), ссылки во фразе SET на поля этой записи обозначают значения этих полей перед тем, как будет выполнено какое-либо присваивание в этой фразе SET.

ОБНОВЛЕНИЕ МНОЖЕСТВА ЗАПИСЕЙ

Удвоить состояние всех поставщиков, находящихся в Лондоне.

UPDATE S

SET СОСТОЯНИЕ = 2*СОСТОЯНИЕ

WHERE ГОРОД = 'Лондон';

ОБНОВЛЕНИЕ С ПОДЗАПРОСОМ

Установить объем поставок равным нулю для всех поставщиков из Лондона.

UPDATE SP

SET КОЛИЧЕСТВО = О

WHERE 'Лондон' =

(SELECT ГОРОД FROM S

WHERE S. НОМЕР_ПОСТАВЩИКА =

SP. НОМЕР_ПОСТАВЩИКА);

ОБНОВЛЕНИЕ НЕСКОЛЬКИХ ТАБЛИЦ

Изменить номер поставщика S2на S9.

UPDATE S

SET НОМЕР_ПОСТАВЩИКА = 'S9'

WHERE НОМЕР_ПОСТАВЩИКА = 'S2';

UPDATE SP

SET НОМЕР_ПОСТАВЩИКА = 'S9'

WHERE НОМЕР_ПОСТАВЩИКА = 'S2';

Невозможно обновить более одной таблицы в единственном запросе. Иными словами, в предложении UPDATE должна специфицироваться в точности одна таблица. Поэтому в данном примере мы сталкиваемся со следующей проблемой целостности (точнее, с проблемой целостности по ссылкам): база данных становится противоречивой после выполнения первого предложения UPDATE — она включает теперь некоторые поставки, для которых не имеется соответствующей записи о поставщике, и остается в таком состоянии до тех пор, пока не будет выполнено второе предложение UPDATE. Изменение порядка предложений UPDATE, конечно, не решает эту проблему. Поэтому важно обеспечить выполнение обоих этих предложений, а не только одного. Этот вопрос о поддержании целостности в условиях, когда требуется множество обновлений, детально обсуждается в главе 11. Кроме того, проблема целостности по ссылкам, в частности, подробно описана в Приложении А, а использованный в системе DB2 подход к ее решению представлен в Приложении В.

ПРЕДЛОЖЕНИЕ DELETE

Предложение DELETEимеет следующий общий формат:

DELETE

FROM таблица

[WHERE предикат];

Удаляются все записи в «таблице», которые удовлетворяют «предикату».


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: