当前位置:首页 > 问答百科 > 正文内容

数据库触发器是什么(SQL语言基础:触发器相关知识介绍)

福瑞号2022-12-01 19:15:09问答百科149
数据库触发器是什么(SQL语言基础:触发器相关知识介绍)-图1
1、触发器 Trigger介绍
触发器可以实现完整性规则和保证一些复杂业务规则的实施。针对示警或满足特定 条件下自动执行某项任务来说,触发器时十分有用的机制。触发器是由事件1驱动的特殊过程,一旦由某个用户定义,任何用户对该触发器指定的数据新增、删除、修改操作,系统会自动激活相应的触发器,在核心层进行集中的完整性控制。
2、触发器特点
1) 当数据库开发者声明事件发生时,触发器激活,事件可以时对某个特定关系的插入、删除、更新。
2) 触发器被事件激活后,不是立即执行,而是先由触发器测试触发条件,若条件不成立,响应该事件的触发器将不做任何处理。
3) 如果触发器的申明条件满足时,则与该触发器相连的动作由DBMS执行。可以阻止事件、撤销事件。
注意事项:
1)触发器为数据库对象时,创建触发器必须指定名称、在其定义触发器的表、触发器触发时机、触发器做什么事情。触发器不能作用在临时表,但可以引用临时表。
3、触发器分类
行级触发器:对事件影响的每一行(FOR EACH ROW) ,每一元组执行。
语句级触发器:对整个事件只执行一次触发过程(FOR EACH STATEMENT)。是触发器默认方式。
4、创建触发器
触发器定义包括:触发器的触发事件、触发器执行的动作。针对update操作中还可以指定特定的属性或属性组的修改为触发条件。事件的触发还有两个相关时间:before、after。
before:触发器是在事件发生之前触发。
after:触发器是在事件发生之后触发。
创建触发器语法格式:
create trigger <触发器名称>[{after|before}]
{[delete|update|updateof[列名清单]]}
on 表名
[referencing <临时视图名称>]
[when<触发条件>]
begin
<触发动作>
end [触发器]
参数说明:
before:说明DBMS在执行触发语句之前激发触发器。
after:说明DBMS在执行触发语句之后激发触发器。
delete:delete触发器,每当一个delete语句从表中删除一行时激发触发器。
insert:insert,每当一个insert语句从表中插入一行时激发触发器。
update:update触发器,每当update语句修改由of子句指定的列值时激发触发器。如果忽略of子句,表示任何列值时,DBMS都将激发触发器。
referencing <临时视图名称>:指定临时视图的别名。在触发器运行过程中,系统会生成两个临时视图,分别存放更新值(旧值)、更新后的值(新值)。
行级触发器:默认临时视图名分别时OLD、NEW。
语句触发器:默认临时视图名分别时OLD-TABLE、NEW-TABLE。触发器结束临时视图也会随着销毁。
WHEN<触发条件>:指定触发器的触发条件。只有条件满足触发条件时,才会激发触发器。触发条件必须包含临时视图名、不包含查询。
针对示警或满足特定条件下自动执行某项任务来说,触发时非常有用的机制。
5、更改触发器
语法格式:
alter trigger <触发器名> [{after|before}]
要执行的SQL语句
end
6、删除触发器
drop trigger <触发器名>[,...n]
说明:n表示可以指定多个触发器的占位符。
7、完整示例
- 需求: 当向员工表插入一条记录时,希望mysql自动同时往日志表插入数据
-- 创建触发器(添加)
CREATE TRIGGER tri_empAdd AFTER INSERT ON employee FOR EACH ROW -- 当往员工表插入一条记录时
INSERT INTO test_log(content) VALUES('员工表插入了一条记录');
CREATE TRIGGER tri_empUpd AFTER UPDATE ON employee FOR EACH ROW -- 当往员工表修改一条记录时
INSERT INTO test_log(content) VALUES('员工表修改了一条记录');
CREATE TRIGGER tri_empDel AFTER DELETE ON employee FOR EACH ROW -- 当往员工表删除一条记录时
INSERT INTO test_log(content) VALUES('员工表删除了一条记录');
-- 删除创建触发器
DROP TRIGGER tri_empAdd;
触发器事件:数据库表行的插入、删除、修改。也就是执行insert、delete、update语句。
想了解更多精彩内容,快来关注数据库技术笔记

扫描二维码推送至手机访问。

版权声明:本文由福瑞号发布,如需转载请注明出处。

本文链接:https://www.furui.com.cn/7594.html

“数据库触发器是什么(SQL语言基础:触发器相关知识介绍)” 的相关文章

会服是什么工作(会服是什么岗位)

会服是什么工作(会服是什么岗位)

会务就是只做会务方面的事务。 1、会议前的各项服务准备及设备设施检查工作,参会人员的引导、签到及开会物品、资料的发放工作,参会贵宾的接待服务,并负责引导其到指定位置就坐,参会人员托管衣帽等物品的管理工作,会议召开期间的茶水服务工作。 2、会后会议室的检查、清扫和整理工作,会前会后的迎宾迎送工作,会...

c位是什么意思网络用语(戏说C位到底是什么样的位置)

c位是什么意思网络用语(戏说C位到底是什么样的位置)

C位到底是什么样的位置? 在互联网的世界中,网友们善于创造各种各样的网络用语,这不一不小心就创造了一个“C位”的词。它代表着重要之人,或者中心之位的意思..... 我们一起来看看,我所理解的C位之意思,看看有啥不同之处。 一、在游戏领域中,C位中的C常常被人翻译成Core、Carry,即核心位置的意...

玄元剑仙邪玉有什么用(玄远剑仙)

玄元剑仙邪玉有什么用(玄远剑仙)

大家好,我是汤圆 玄元剑仙飞升天界后,游历的地图根据在过图时选择发生事件的不同,会得到不同的“敬畏”和“崇拜”属性值,两种属性的比例会影响该地图通关后游历的产出的邪玉和皓玉的比例。 初期推荐大家选择达成“混沌尊者”的供奉性质,这样正邪玉的收获比例为平均。 邪玉和皓玉可以用来升级八卦阵法,以及购买时装...

等离子和液晶的区别是什么(等离子电视机和液晶电视机的区别是什么)

等离子和液晶的区别是什么(等离子电视机和液晶电视机的区别是什么)

电视机作为现代家庭必不可少的生活家电之一,也衍生出了各种类型的型号。等离子电视机(PDP)和液晶电视机(LCD)作为平板电视的不同类型,其优劣一直没有最终的定论。虽然这两种电视机表面看起来非常相似,但本质上却有不小的差别。为了帮助大家有个更直观的认识,今天这篇文章我们就来详细讲解一下等离子电视机和液...

吉他的押尾桑指是什么意思(别让吉他弦影响了你的弹奏)

吉他的押尾桑指是什么意思(别让吉他弦影响了你的弹奏)

对于弹吉他的朋友来说,吉他的品牌和配置无疑是比较关心的问题,琴的好坏也会对弹奏的效果有比较大的影响。除了吉他本身,您有没有关注过琴弦对弹奏的影响呢?吉他弦都有哪些种类,什么琴适合什么样的琴弦,多久更换一次琴弦,这些问题其实都是影响弹奏效果的因素。尤其对于新手朋友来说,很有可能就会忽略琴弦带来的影响,...

丑角爸爸的演员(《丑角爸爸》:李保田、王晓晨用戏曲人生弘扬京剧文化)

丑角爸爸的演员(《丑角爸爸》:李保田、王晓晨用戏曲人生弘扬京剧文化)

由李保田、王晓晨等出演的电视剧《丑角爸爸》将于11月9日登陆东方影视频道。该剧以河北某京剧团改革开放后近20年的风雨历程为背景,讲述了一代“名丑”赵青山的家庭情感纠葛以及他对戏曲艺术执着坚守的故事。 图说:李保田和王晓晨 剧中,李保田饰演的赵青山是市里有名的“丑角”,赵青山一生都在为爱奔波,爱戏曲...