255 Records: 8 Duplicates: 0 Warnings: 0
mysql>
ALTER TABLE product > ADD CONSTRAINT fk_product_type_cd FOREIGN KEY (product_type_cd) > REFERENCES product_type (product_type_cd) > ON UPDATE CASCADE; Query OK, 8 rows affected (0.03 sec)
Records: 8 Duplicates: 0 Warnings: 0
Изменив ограничение таким образом, посмотрим, что произойдет, ес
ли попытаться выполнить выражение
update
снова:
mysql>
UPDATE product_type > SET product_type_cd = 'XYZ' > WHERE product_type_cd = 'LOAN'; Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
На этот раз выражение выполняется успешно. Для проверки того, что
изменения были распространены на таблицу
product
, еще раз посмот
рим на данные в обеих таблицах:
mysql>
SELECT product_type_cd, name > FROM product_type; +++
| product_type_cd | name |
+++
| ACCOUNT | Customer Accounts |
| INSURANCE | Insurance Offerings |
| XYZ | Individual and Business Loans |
+++
3 rows in set (0.02 sec)
mysql>
SELECT product_type_cd, product_cd, name > FROM product > ORDER BY product_type_cd; ++++
| product_type_cd | product_cd | name |
++++
| ACCOUNT | CD | certificate of deposit |
| ACCOUNT | CHK | checking account |
| ACCOUNT | MM | money market account |
| ACCOUNT | SAV | savings account |
| XYZ | AUT | auto loan |
| XYZ | BUS | business line of credit |
| XYZ | MRT | home mortgage |
| XYZ | SBL | small business loan |
++++
8 rows in set (0.01 sec)
Как видите, изменения таблицы
product_type
распространились и на таб
лицу
product
. Кроме каскадных обновлений можно задавать
каскад ные удаления (
cascading deletes ). При каскадном удалении, если стро