Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Обновление множества строк

Обновление множества строкИногда с помощью одной инструкции UPDATE требуется обновить сразу несколько строк. В качестве примера представим, что производитель изменил упаковку товара с номеров 990, после чего ее габариты изменились с 4^6 на 5×7. Следующая инструкция UPDATE позволит синхронизировать информацию базы данных с реалиями жизни.

Обновление одного столбца во всех строках Хотя операция обновления всех строк таблицы не так уж и часто встречается на практике, иногда она все-таки может потребоваться. Для примера представьте себе, что всем сотрудникам предприятия подняли зарплату на 5% или возникла необходимость опустошения всех ячеек некоторого столбца. Ключевым в данной ситуации будет слово “все”. Другими словами, можно умышленно опустить предложение WHERE, только если потребуется обновить все строки в таблице. Следующая инструкция UPDATE повышает цену всех товаров на 10% (компанию ACME также затронуло глобальное повышение цены энергоносителей). Результаты запроса SELECT можно использовать для присваивания значений столбцам в инструкции UPDATE Главное — запомнить, что данный запрос отбора должен возвращать не более одной строки (если не возвращена ни одна строка, всем столбцам будет присвоено значение NULL). При этом можно объединять строки, выполнять над возвращаемыми значениями прочие операции, однако нельзя перечислять множество столбцов, разделяя их запятыми. Таким образом, предложение SET my_col = Существует множество ситуаций, в которых использование подзапросов в качестве присваиваемых значений может пригодиться. Примером может послужить изменение сроков оплаты заказа 306701 в базе данных ACME на N21531. Проблема заключается в том, что ни в каком столбце таблицы ORDER_HEADER не хранится код платежа N21531. Вместо этого таблица использует код, идентифицирующий строку в таблице PAYMENT_TERMS, хранимый в столбце внешнего ключа (несмысловое целое число). Однако с помощью следующего подзапроса можно выполнить данную задачу.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *