Heim  >  Artikel  >  Datenbank  >  Oracle级联操作详解

Oracle级联操作详解

WBOY
WBOYOriginal
2016-06-07 16:08:471063Durchsuche

在添加foreing key约束时,还可以指定级联操作的类型,主要用于确定当删除(on delete) 附表中的一条记录时,如何处理子表中的外

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

cascade
此关键字用于表示当删除主表中被引用列的数据时,将子表中相应应用列的值置为null值,这种情况要求子表中的引用列支持null值
set null
此关键字用于当删除主表中被引用列的数据时,将子表中相应引用列的值设置为null值。这种情况要求子表中的应用列支持null值。
not action
此关键字用于表示当删除主表中被引用的数据时,,如果子表的引用列种包含该值,则禁止操作执行。默认为该选项。

具体的操作如下:
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>

Oracle级联操作

本文永久更新链接地址

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn