SQL触发器

触发器简介
触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。
触发器可以分为:语句级触发器和行级触发器。
1、在一个表中定义的语句级的触发器,当这个表被删除时,程序就会自动执行触发器里面定义的操作过程。
这个就是删除表的操作就是触发器执行的条件了。
2、在一个表中定义了行级的触发器,那当这个表中一行数据发生变化的时候,比如删除了一行记录,那触发器也会被自动执行了。

--触发器语法:
CREATE [OR REPLACE] TRIGGER TRIGGER_NAME
{BEFORE | AFTER} TRIGGER_EVENT
ON TABLE_NAME
[FOR EACH ROW]
[WHEN TRIGGER_CONDITION]
TRIGGER_BODY
语法解释:
TRIGGER_NAME:   触发器名称
BEFORE | AFTER : 指定触发器是在触发事件发生之前触发或者发生之后触发
TRIGGER_EVENT:  触发事件,在DML触发器中主要为INSERTUPDATEDELETE等
TABLE_NAME:     表名,表示发生触发器作用的对象
FOR EACH ROW:   指定创建的是行级触发器,若没有该子句则创建的是语句级触发器
WHEN TRIGGER_CONDITION:添加的触发条件
TRIGGER_BODY:   触发体,是标准的PL/SQL语句块
insert  into dept  values(50,'数据开发','广州')

create table myemp(
       num number,
       name varchar2(10),
       deptno number);

insert  into myemp  values(1001,'张三',50);
insert  into myemp  values(1002,'李四',50);
insert  into myemp  values(1003,'张三',50);

创建触发器,当删除DEPT表中50号部门的时候,同时删除myemp所有50号部门的员工信息
create or replace trigger delete_dept                       --创建dept表触发器
       after delete or insert or update of  deptno       --删除部门号字段后 触发 触发器
       on dept                                                            --
       for each row
begin
  if deleting then delete from myemp where myemp.deptno=:OLD.deptno;
     end if;
end;

delete from dept where deptno=50
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值