外键用于在子表(其中列定义为外键)和父表(其中子表的外键成为主键)之间建立引用约束。例如,如果我们有一个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。