Oracle其他對(duì)象
一、其他對(duì)象
1.觸發(fā)器trigger。你進(jìn)行了某個(gè)動(dòng)作(增、刪、改。。。)讓觸發(fā)器感覺到了給予反饋
delete from emp where deptNo=30;/*刪除30號(hào)部門的員工*/
delete from dept where deptNo=30;/*再刪除30號(hào)部門*/
在清楚30號(hào)部門前,將30號(hào)部門的員工開除了(刪掉30號(hào)部門的所有員工)
insert into dept(deptNo,dName,loc) values(63,'小賣部','XDL');
insert into emp(empNo,ename,deptNo) values(9999,'某帥',63);
insert into emp(empNo,ename,deptNo) values(8888,'某寶',63);
創(chuàng)建觸發(fā)器實(shí)現(xiàn)刪除63號(hào)部門☆前☆刪除63號(hào)部門的員工
drop trigger tri_deptDel;
create trigger tri_deptDel
before delete on dept
for each row
begin
delete from emp where deptNo= :old.deptNo;
end;
因?yàn)橛胁块T刪除的級(jí)聯(lián)觸發(fā)器存在,所以當(dāng)63號(hào)部門被刪除時(shí),先刪除63號(hào)部門下的所有員工(觸發(fā)器完成的)
delete from dept where deptNo=63;
before -- 某事情發(fā)生前
delete -- 發(fā)生的刪除事件
before delete on dept -- 在dept表發(fā)生刪除前觸發(fā)這個(gè)自定義觸發(fā)器
for each row -- 循環(huán)與當(dāng)前刪除相關(guān)的所有行,針對(duì)63號(hào)部門刪除是,這個(gè)row便利的所有63號(hào)的員工
:old.deptNo? -- 此:old舊對(duì)象,更新前的數(shù)據(jù)
:new.deptNo? -- 此:new新對(duì)象,更新后的數(shù)據(jù)
update dept set deptNo=88 where deptNo=40;
:old.deptNo 指40號(hào)部門
:new.deptNo 值88號(hào)部門
2.包package 用來將當(dāng)前自定義對(duì)象分門別類存放
create package pac_xd is? ...聲明..函數(shù)...
create package body pac_xdl is ...函數(shù)內(nèi)容編寫...
函數(shù)調(diào)用時(shí)
pac_xdl.函數(shù)(參數(shù));