ORACLE外键约束(FORIGEN KEY)

Posted 公瑾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE外键约束(FORIGEN KEY)相关的知识,希望对你有一定的参考价值。

ORACLE外键约束

  1. 外键约束的定义是,让另一张表的记录来约束自己。这里的另一张表就是主表。
  2. 当主表的记录删除时,我们可以跟随主表删除记录(ON DELETE CASCADE)、或者相应字段设置为空(ON DELETE SET NULL)、或者不允许删除(默认)。

    a) 注意一:当主表被级联删除(DORP TABEL WEN CASCADE CONSTRAINTS)时,从表建立的与主表关联的外键约束将被删除,从表数据不会发生变化。

    1.   假设从表为另一个表外键约束对应的主表,该外键约束关系不会受到影响。

    b) 注意二:从表外键约束指向的主表字段,必须是唯一性约束或主键约束的字段。

    1.     因为,当外键约束指向的主表记录有重复项时,删除其中之一时,从表伴随操作不明朗。

 

创建表时创建外键语法:

PRIMARY[?pra?m?ri] 主要的、关键

FOREIGN[?f?r?n] 外键

REFERENCES[?refr?ns]

CONSTRAINT [k?n?stre?nt]:约束、限制、强制

 

CREATE TABLE WEN

(

MY CHAR(10) NOT NULL,

LOVE CHAR(8) NOT NULL,

PRIMARY KEY (MY),

CONSTRAINT WEN_FK FOREIGN KEY (MY,LOVE)

REFERENCES GUOGUO(MY,LOVE) ON DELETE CASCADE --当主表记录删除时,从表记录伴随删除

)

ON DELETE SET NULL;

当主表记录删除时,设置从表数据为NULL,注意,从表字段必须允许为NULL

不写ON语句时,默认不允许删除主表记录。

 

 

修改表时追加外键:

ALTER TABLE WEN

ADD CONSTRAINT WEN_FK FOREIGN KEY(MY,LOVE) REFERENCES GUOGUO(MY,LOVE) ON DELETE CASCADE

 

ALTER TABLE GUOGUO ADD CONSTRAINT GUOGUO_FK FOREIGN KEY(MY,LOVE) REFERENCES

WEN(MY,LOVE) ON DELETE SET NULL

 

以上是关于ORACLE外键约束(FORIGEN KEY)的主要内容,如果未能解决你的问题,请参考以下文章

SQL 怎样删除有外键约束的表

怎样在oracle中创建主外键和唯一约束

Oracle定义约束外键约束

小议Oracle外键约束修改行为(一)

Oracle如何创建一个置空的外键约束?

oracle 删除外键约束 禁用约束 启用约束