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)系
專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)晉安免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了數(shù)千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎ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
設(shè)定dept表deptno列為主鍵。
alter table dept add constraint pk_deptno primary key (deptno);
在emp表deptno列上建立外鍵引用dept表deptno,指定外鍵類型為級(jí)聯(lián)刪除。
alter table emp add constraint fk_deptno foreign key (deptno) references dept(deptno) on delete cascade;
這樣刪除dept表 只需:delete from dept where city='shanghai'; 就可以自動(dòng)刪除對(duì)應(yīng)emp表內(nèi)容。
你這個(gè)寫法有問題,oracle不允許這樣刪除,如果想級(jí)聯(lián)刪除有兩個(gè)方法實(shí)現(xiàn):方法一:觸發(fā)器解決,方法二:修改你的外鍵設(shè)置,達(dá)到級(jí)聯(lián)刪除的目的。如果不用級(jí)聯(lián)刪除的話就只有一個(gè)表一個(gè)表的刪除,先刪除contactcomm表再刪除contact 表。
修改你的外鍵設(shè)置,達(dá)到級(jí)聯(lián)刪除的目的,具體實(shí)現(xiàn)如下:
a)先查詢出EMP表和POS表中 外鍵的名稱(如果你知道 外鍵名這一步可以省略)
select CONSTRAINT_NAME,TABLE_NAME from user_constraints where CONSTRAINT_TYPE ='R' and TABLE_NAME in('EMP','POS');
b)刪除EMP表和POS表上的外鍵后 重新建立允許級(jí)聯(lián)刪除的外鍵模式
alter table EMP drop constraint 外鍵名;
alter table POS drop constraint 外鍵名;
alter table EMP add constraint 外鍵名 foreign key(DEPT_NO) references DEPT(DEPT_NO) on delete cascade;
alter table POS add constraint 外鍵名 foreign key(DEPT_NO) references DEPT(DEPT_NO) on delete cascade;
這樣刪除關(guān)聯(lián)刪除是自動(dòng)的
網(wǎng)頁名稱:oracle怎么關(guān)聯(lián)刪除 oracle 刪除關(guān)聯(lián)表的數(shù)據(jù)
標(biāo)題網(wǎng)址:http://chinadenli.net/article42/hgceec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、App設(shè)計(jì)、域名注冊(cè)、服務(wù)器托管、外貿(mào)網(wǎng)站建設(shè)、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)