UPDATE individual2 INNER JOIN customer2 > ON individual2.cust_id = customer2.cust_id > INNER JOIN account2 > ON customer2.cust_id = account2.cust_id > SET individual2.cust_id = individual2.cust_id + 10000, > customer2.cust_id = customer2.cust_id + 10000, > account2.cust_id = account2.cust_id + 10000 > WHERE individual2.cust_id = 3; Query OK, 4 rows affected (0.01 sec)
Rows matched: 5 Changed: 4 Warnings: 0
Это выражение изменяет четыре строки – по одной в таблицах
individ
ual2
и
customer2
и две в таблице
account2
. Синтаксис многотабличного
выражения
update
очень похож на синтаксис однотабличного выраже
ния
update
, за исключением того, что в блоке
update
указываются не
сколько таблиц и соответствующие им условия соединения, а не про
сто одна таблица. Как и однотабличное выражение
update
, многотаб
личная версия включает блок
set
. Разница в том, что все упомянутые
в блоке
update
таблицы можно изменить посредством блока
set
.
При использовании механизма хранения InnoDB, если задейст
вованные таблицы имеют ограничения внешнего ключа, приме
нять многотабличные выражения
delete
и
update
скорее всего не
получится. Причина в том, что этот механизм не гарантирует
проведение изменений в порядке, не нарушающем ограниче
ния. Поэтому в такой ситуации следует использовать несколько
однотабличных выражений в соответствующем порядке, так
чтобы не нарушались ограничения внешнего ключа.
Решения к упражнениям Глава 3 3.1 Извлеките ID, имя и фамилию всех банковских сотрудников. Выпол
ните сортировку по фамилии и затем по имени.
mysql>