歡迎您光臨本站 註冊首頁
小知識  >  Oracle >

oracle 刪除關聯表數據

admin @ 2017-12-03 reply:0
←手機掃碼閱讀

設定dept表deptno列為主鍵。
alter table dept add constraint pk_deptno primary key (deptno);
在emp表deptno列上建立外鍵引用dept表deptno,指定外鍵類型為級聯刪除。
alter table emp add constraint fk_deptno foreign key (deptno) references dept(deptno) on delete cascade;
這樣刪除dept表 只需:delete from dept where city='shanghai'; 就可以自動刪除對應emp表內容。
delete from dept a inner join on  emp b on a.deptno=b.deptno  where a.city='shanghai'  你試試吧!希望有用!
刪除dept表中的數據:
delete from dept t where t.city = 'shanghai'

刪除與之關聯的emp表中的數據:
delete from emp e where e.deptno in ( select t.deptno from dept t where t.city = 'shanghai' )

刪主鍵值之前,必須先刪掉它的外鍵,這兩條SQL的執行順序樓主自己調一下。


[admin via ] oracle 刪除關聯表數據已經有549次圍觀

http://coctec.com/room/show-496.html