博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL入门很简单-触发器
阅读量:5126 次
发布时间:2019-06-13

本文共 1704 字,大约阅读时间需要 5 分钟。

1、触发器是由事件来触发某个操作,这些事件包括insert语句、update语句和delete语句。当执行这些事件时,会激活触发器执行相应操作。MySQL从5.0.2开始支持触发器。使用触发器可以保证某些操作之间的一致性。

2、创建一个执行语句的触发器

create trigger 触发器名 before|after 触发事件 on 表名 for each row 执行语句;

before和after参数指定触发器执行的时间;

触发事件包括insert、update和delete;

for each row表示任何一条记录上的操作满足触发条件都会触发触发器;

执行语句指触发器被触发后执行的程序

create trigger dept_trig1 before insert on department for each row insert into trigger_time values(now());

3、创建多个执行语句的触发器

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

一般情况下,MySQL默认以';'结束执行语句。在创建触发器过程中需要用到该符号。在执行语句列表也用';'分隔执行语句,因此可以用delimiter语句。

delimiter &&

create trigger dept_trig2 after delete

on department for each row

begin

insert into trigger_time values('21:01:01');

insert into trigger_time values('22:01:01');

end

&&

delimiter;

MySQL中,一个表在相同触发时间的相同触发事件只能创建一个触发器。如触发事件insert,触发时间为after的触发器只有一个。

4、查看触发器

指查看数据库中已存在的触发器的定义、状态和语法等信息。查看方法包括show triggers语句和查询information_schema数据库下的triggers表等。

show triggers \G //查看所有的触发器,不适合触发器很多的情况

select * from information_schema.triggers;

select * from information_schema.triggers where trigger_name='触发器名';

5、MySQL中,触发器执行的顺序是before触发器、表操作(insert、update和delete)和after触发器

create trigger before_insert before insert on department for each row insert into trigger_test values(null, "before_insert");

create trigger after_insert before insert on department for each row insert into trigger_test values(null, "after_insert");

激活触发器时,对触发器的执行语句存在一些限制。如,触发器中不能包含start transaction、commit或rollback等关键词也不能包含call语句。

在触发器执行过程中,任何步骤出错都会阻止程序向下执行,对于普通表来说,已经更新过的记录不能回滚,更新后的数据将继续保留在表中。

6、删除触发器

drop trigger 触发器名。

触发器名参数如果指指定名称会在当前数据库下查找该触发器,如果找到就删除。如果指定数据库,数据库系统会到指定的数据库下去查找触发器。

如果不再需要某触发器,一定要将该触发器删除。

转载于:https://www.cnblogs.com/kabi/p/8954751.html

你可能感兴趣的文章
JS报表控件highcharts应用
查看>>
rsync服务器间文件的传输
查看>>
Java(6)for循环
查看>>
Redis数据结构之简单动态字符串SDS
查看>>
CentOS7 查看硬盘情况
查看>>
WPF-3D动效-文字球形环绕
查看>>
Asp.Net Core 轻松学-利用xUnit进行主机级别的网络集成测试
查看>>
ToList()所带来的性能影响
查看>>
WPF 4 日期选择器(DatePicker)
查看>>
20几个正则常用正则表达式
查看>>
TextArea中定位光标位置
查看>>
非常棒的Visual Studo调试插件:OzCode 2.0 下载地址
查看>>
判断字符串在字符串中
查看>>
hdu4374One hundred layer (DP+单调队列)
查看>>
AttributeError: 'module' object has no attribute 'X509_up_ref'
查看>>
Web长连接推送
查看>>
oracle定时器执行一遍就不执行或本就不执行
查看>>
ossim
查看>>
最大流问题的几种经典解法综述
查看>>
2 -8 字典dict
查看>>