数据库触发器

一、触发器的定义:

触发器(TRIGGER)是由事件来触发某个操作。这些事件包括INSERT语句、UPDATE语句和DELETE语句。当数据库系统执行这些事件时,会激活促发其执行相应的操作。

SQL触发器,是一种特殊类型的存储过程,不由用户直接调用。他可以查询其它表,并可以包含复杂的Transact-SQL语句。将触发器和触发它的语句作为可在触发器内回滚的单个事务对待。如果检测到严重错误(例如,磁盘空间不足),则整个事务即自动回滚。常常用于强制业务规则和数据完整性。

二 、触发器分类:

1、DML( 数据操纵语言 Data Manipulation Language)触发器:是指触发器在数据库中发生 DML 事件时将启用。DML事件是指在表或视图中对数据进行的 insert、update、delete 操作的语句。

2、DDL(数据定义语言 Data Definition Language)触发器:是指当服务器或数据库中发生 DDL 事件时将启用。DDL事件是指在表或索引中的 create、alter、drop 操作语句。

3、登陆触发器:是指当用户登录 SQL SERVER 实例建立会话时触发。如果身份验证失败,登录触发器不会触发。

INSERT型触发器:插入某一行时激活触发器,通过 INSERT、LOAD DATA、REPLACE语句触发;
UPDATE型触发器:更改某一行时激活触发器,通过UPDATE语句触发;
DELETE型触发器:删除某一行时激活触发器,通过DELETE、REPLACE语句触发。

三、创建与使用触发器:

创建触发器的语法:

CREATE TRIGGER trigger_name trigger_time trigger_event ON tb_name FOREACH ROW trigger_stmt:

trigger_name:触发器的名称。
tirgger_time:触发时机,为BEFORE或者AFTER。
trigger_event:触发事件,为INSERT、DELETE或者UPDATE。
tb_name:表示建立触发器的表名,在哪张表上建立触发器。
trigger_stmt:触发器的程序体,可以是一条SQL语句或者是用BEGIN和END包含的多条语句。

FOR EACH ROW表示任何一条记录上的操作满足触发事件都会触发该触发器。

创建有多个执行语句的触发器:

create trigger 触发器名 before|after 触发事件 on 表名 foreach row
begin
执行语句
end

四、查看触发器
4.1 SHOWTRIGGERS 语句查看触发器信息

SHOW TRIGGERS;

4.2 在 triggers 表中查看触发器信息

DROP TRIGGER trig_book2 ;

====================

创建数据库触发器步骤:https://jingyan.baidu.com/article/20095761b33758cb0621b44f.html
更深入了解:
https://blog.51cto.com/9291927/2095105

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值