欢迎光临散文网 会员登陆 & 注册

Oracle其他对象

2023-03-13 14:29 作者:阿彦绝地反击  | 我要投稿

一、其他对象

1.触发器trigger。你进行了某个动作(增、删、改。。。)让触发器感觉到了给予反馈

delete from emp where deptNo=30;/*删除30号部门的员工*/

delete from dept where deptNo=30;/*再删除30号部门*/

在清楚30号部门前,将30号部门的员工开除了(删掉30号部门的所有员工)

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);

创建触发器实现删除63号部门☆前☆删除63号部门的员工

drop trigger tri_deptDel;

create trigger tri_deptDel

before delete on dept

for each row

begin

delete from emp where deptNo= :old.deptNo;

end;

因为有部门删除的级联触发器存在,所以当63号部门被删除时,先删除63号部门下的所有员工(触发器完成的)

delete from dept where deptNo=63;


before -- 某事情发生前

delete -- 发生的删除事件

before delete on dept -- 在dept表发生删除前触发这个自定义触发器

for each row -- 循环与当前删除相关的所有行,针对63号部门删除是,这个row便利的所有63号的员工

:old.deptNo  -- 此:old旧对象,更新前的数据

:new.deptNo  -- 此:new新对象,更新后的数据

update dept set deptNo=88 where deptNo=40;

:old.deptNo 指40号部门

:new.deptNo 值88号部门

2.包package 用来将当前自定义对象分门别类存放

create package pac_xd is  ...声明..函数...

create package body pac_xdl is ...函数内容编写...

函数调用时

pac_xdl.函数(参数);


Oracle其他对象的评论 (共 条)

分享到微博请遵守国家法律