目录
1. 触发器的概述
触发器可以理解成为一种特殊类型的存储过程,但它不同于存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。触发器主要是通过一定的操作(诸如Update、 Insert、 Delete 这些操作时)来触发自动执行触发器所定义的SQL 语句,从而确保对数据的处理必须符合由这些SQL 语句所定义的规则。触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。
2. 触发器的使用
2.1 测试准备
创建STUDENT表和USERS表:
--学生表 student CREATE TABLE DMHR.STUENDT(ID INT,NAME VARCHAR(10),PHONE VARCHAR(11),CREATE_TIME DATETIME DEFAULT SYSDATE); --用户表 users CREATE TABLE DMHR.USERS(ID INT,NAME VARCHAR(10),CREATE_TIME DATETIME DEFAULT SYSDATE); |
2.2 触发器分类
触发器可以分为:表级触发器和时间出发器两种类型。
2.2.1 表级触发器
表级触发器的触发动作是三种数据操作命令,即 INSERT、DELETE 和 UPDATE 操作。
创建触发器,如下所示:
(1)行级触发器,对触发命令所影响的每一条记录都激发一次。
CREATE OR REPLACE TRIGGER TRG_NAME AFTER INSERT OR DELETE OR UPDATE ON TABLE_NAME FOR EACH ROW -- 行级:此子句一定不能省略 BEGIN PRINT 'INSERT OR DELETE OR UPDATE OPERATION ON TABLE_NAME';--要执行的SQL END; |
(2)语句级触发器,对每个触发命令执行一次。
CREATE OR REPLACE TRIGGER TRG_NAME AFTER INSERT |