SQL與ORACLE的外來鍵約束 級聯刪除

2021-08-24 19:11:47 字數 1309 閱讀 3364

sql與oracle的外來鍵約束-級聯刪除

sql與oracle的外來鍵約束--級聯刪除

最近軟體系統中要刪除一條記錄,就要關聯到同時刪除好多張表,他們之間還存在著約束關係.所以考慮到在建立表時加上約束關係,具體如下:

sql的外來鍵約束可以實現級聯刪除與級聯更新;

oracle則只充許級聯刪除。

sql級聯刪除與級聯更新使用格式:

create table a001(id int primary key,name varchar(20))

create table a002(id int references a001(id)on delete cascade on update cascade,age tinyint)

oracle級聯刪除使用格式:

create table a001(id int primay key,name varchar2(20))

create table a002(id int references a001(id)on delete cascade,age number(2,0))

--------------

create table groups

(id varchar2(16) constraint pk_groupid primary key,

name varchar2(32),

description varchar2(50)

)tablespace userspace;

create table usringrp

(group_id varchar2(16) constraint fk_uing_grpid

references groups(id)

on delete cascade,

user_id varchar2(16)

)tablespace userspace;

---------------

powerdesigner

參照完整性約束

限制(restrict)。不允許進行修改或刪除操作。若修改或刪除主表的主鍵時,如果子表中存在子記錄,系統將產生乙個錯誤提示。這是預設的參照完整性設定。

置空(set null)。如果外來鍵列允許為空,若修改或刪除主表的主鍵時,把子表中參照的外來鍵列設定為空值(null)。

置為預設(set default)。如果指定了預設值,若修改或刪除主表的主鍵時,把子表中參照的外來鍵設定為預設值(default)。

級聯(cascade)。把主表中主鍵修改為乙個新的值時,相應修改子表中外鍵的值;或者刪除主表中主鍵的記錄時,要相應刪除子表中外鍵的記錄。

oracle外來鍵約束

新建父表 sql create table teacher 2 3 id number primary key,4 name varchar2 10 5 table created.新建子表 sql 1 create table student 2 3 id number primary key,4...

Oracle 外來鍵約束

新增主鍵約束 alter table ga airline add constraint pk airline id primary key airline id 有三種形式的外來鍵約束 1 普通外來鍵約束 如果存在子表引用父表主鍵,則無法刪除父表記錄 alter table t invoice d...

Oracle 外來鍵約束

下面的語句建立department 20表,並定義和啟用department id列上的外來鍵,該外來鍵引用departments表的department id列上的主鍵 create table dept 20 employee id number 4 last name varchar2 10 ...