假如有主表 test_main 與 子表 test_sub\x0d\x0aSQL -- 創(chuàng)建外鍵(默認(rèn)選項(xiàng))\x0d\x0aSQL ALTER TABLE test_sub ADD CONSTRAINT main_id_cons FOREIGN KEY (main_id) REFERENCES test_main;\x0d\x0aTable altered.\x0d\x0a\x0d\x0a刪除外鍵約束\x0d\x0aALTER TABLE test_sub DROP CONSTRAINT main_id_cons;
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供周口企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、成都做網(wǎng)站、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為周口眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
SQL和 Oracle外鍵的相關(guān)約束中的級(jí)聯(lián)刪除 我們?cè)谙嚓P(guān)的系統(tǒng)中如果你要?jiǎng)h除相關(guān)記錄 我們就要關(guān)聯(lián)一起刪除N多張表 同時(shí)它們之間還存在著相互約束的關(guān)系 所以考慮到在創(chuàng)建表時(shí)加上約束關(guān)系
詳細(xì)內(nèi)容如下:
SQL的Oracle外鍵約束可以實(shí)現(xiàn)級(jí)聯(lián)刪除與級(jí)聯(lián)更新;Oracle 則只充許級(jí)聯(lián)刪除
SQL級(jí)聯(lián)刪除與級(jí)聯(lián)更新使用格式
CREATE TABLE A (ID INT PRIMARY KEY NAME VARCHAR( ))
CREATE TABLE A (ID INT REFERENCES A (ID)ON DELETE CASCADE ON UPDATE CASCADE AGE TINYINT)
Oracle 級(jí)聯(lián)刪除使用格式
CREATE TABLE A (ID INT PRIMAY KEY NAME VARCHAR ( ))
CREATE TABLE A (ID INT REFERENCES A (ID)ON DELETE CASCADE AGE NUMBER( ))
CREATE TABLE groups
(
id VARCHAR ( ) CONSTRAINT pk_groupid PRIMARY KEY
name VARCHAR ( )
description VARCHAR ( )
)
TABLESPACE userspace;
CREATE TABLE usringrp
(
group_id VARCHAR ( ) CONSTRAINT fk_uing_grpid
REFERENCES groups(id)
ON DELETE CASCADE
user_id VARCHAR ( )
)
TABLESPACE userspace;
PowerDesigner
參照完整性約束
限制(Restrict) 不允許進(jìn)行修改或刪除操作 若修改或刪除主表的主鍵時(shí) 如果子表中存在子記錄 系統(tǒng)將產(chǎn)生一個(gè)錯(cuò)誤提示 這是缺省的參照完整性設(shè)置
置空(Set Null) 如果Oracle外鍵列允許為空 若修改或刪除主表的主鍵時(shí) 把子表中參照的外鍵列設(shè)置為空值(NULL)
置為缺省(Set Default) 如果指定了缺省值 若修改或刪除主表的主鍵時(shí) 把子表中參照的Oracle外鍵設(shè)置為缺省值(Default)
級(jí)聯(lián)(Cascade) 把主表中主鍵修改為一個(gè)新的值時(shí) 相應(yīng)修改子表中Oracle外鍵的值 或者刪除主表中主鍵的記錄時(shí) 要相應(yīng)刪除子表中外鍵的記錄
lishixinzhi/Article/program/Oracle/201311/17613
添加約束語句格式:\x0d\x0aalter table 表名 add constraint 主鍵約束名 primary key(主鍵列名表序列);\x0d\x0a如:\x0d\x0aalter table 修課表 add constraint pk_xh_kc primary key(學(xué)號(hào),課程號(hào));\x0d\x0a\x0d\x0a刪除約束語句格式:\x0d\x0aalter table 表名 drop CONSTRAINT 主鍵約束名;\x0d\x0a如:\x0d\x0aalter table 修課表 drop CONSTRAINT pk_xh_kc;