外键用于在子table(in which column is defined as foreign key)表和父表之间建立参照约束(子表的外键成为主键)。例如,如果我们有一个 ORDER 表,其中外键定义为 TRANSACTION_ID。此外键将引用 TRANSACTIONS 表的 TRANSACTION_ID 列。在这个 TRANSACTIONS 表中,TRANSACTION_ID 将是主键。这里的父表是 TRANSACTIONS 表,而这里的子表是 ORDERS 表。
外键的 CASCADE 规则规定,当从父表中删除任何条目时,子表中的所有相关行也应该被删除。例如,如果TRANSACTIONS 表中有一个条目的TRANSACTION_ID 为'A2234'(主键)。如果该条目从 TRANSACTIONS 表中删除,那么 ORDERS 表中外键 TRANSACTION_ID 为“A2234”的所有行也应该被删除。我们可以如下设置 CASCADE 规则。
CREATE TABLE ORDERS (ORDER_ID CHAR(15) NOT NULL, ORDER_DATE DATE, ORDER_TOTAL DECIMAL(9,2), TRANSACTION_ID CHAR(15), PRIMARY KEY(ORDER_ID), FOREIGN KEY(TRANSACTION_ID) REFERENCES TRANSACTIONS ON DELETE CASCADE) IN DB4ES01;
REFERENCES 关键字后跟父表的名称,为了设置 CASCADE 规则,我们将使用关键字 ON DELETE CASCADE。