PLSQL 触发器(TRIGGER )

触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。
触发器可以分为:语句级触发器和行级触发器。

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触发器中主要为INSERT、UPDATE、DELETE等
	TABLE_NAME:     表名,表示发生触发器作用的对象
	FOR EACH ROW:   指定创建的是行级触发器,若没有该子句则创建的是语句级触发器
	WHEN TRIGGER_CONDITION:添加的触发条件
	TRIGGER_BODY:   触发体,是标准的PL/SQL语句块

DEMO1:
语句级触发器(BEFORE触发器):用来控制对表的修改 – 主要是删除和更新(重要数据保留)

CREATE OR REPLACE TRIGGER TR_EMP_TABLE
  BEFORE UPDATE OR DELETE OR INSERT ON EMP
BEGIN
  IF DELETING THEN
    RAISE_APPLICATION_ERROR(-20001, '该表不允许删除数据');
  ELSIF UPDATING THEN
    RAISE_APPLICATION_ERROR(-20002, '该表不允许修改数据');
  ELSIF INSERTING THEN
    RAISE_APPLICATION_ERROR(-20003, '该表不允许插入数据');
  END IF;
END;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值