在加入foreing key约束时,还能够指定级联操作的类型,主要用于确定当删除(on delete) 附表中的一条记录时,怎样处理子表中的外键字段,有例如以下三种引用类型。

cascade
此keyword用于表示当删除主表中被引用列的数据时,将子表中对应应用列的值置为null值,这样的情况要求子表中的引用列支持null值
set null
此keyword用于当删除主表中被引用列的数据时。将子表中对应引用列的值设置为null值。

这样的情况要求子表中的应用列支持null值。


not action
此keyword用于表示当删除主表中被引用的数据时,假设子表的引用列种包括该值,则禁止操作运行。

默觉得该选项。

详细的操作例如以下:
SQL> create table stuclass(
  2  cid number(4) primary key,
  3  cname varchar2(40),
  4  num number(4)
  5  );
表已创建。


SQL> create table stu(
  2  sid number(4),
  3  scode varchar(10),
  4  sname varchar(20),
  5  cid number(4) references stuclass(cid) on delete set null
  6  );
表已创建。
SQL> insert into stuclass values(1,'oracle',35);
已创建 1 行。
SQL> insert into stu values(1,'s001','aaa',1);
已创建 1 行。


SQL> delete stuclass where cid=1;
已删除 1 行。


SQL> select * from stuclass;
未选定行
SQL> select * from stu;
       SID SCODE      SNAME                       CID
---------- ---------- -------------------- ----------
         1 s001       aaa
SQL>