MySQL6:触发器

前端之家收集整理的这篇文章主要介绍了MySQL6:触发器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

MysqL的触发器(trigger)和存储过程一样,都是嵌入到MysqL中的一段程序。触发器是由事件来触发某个操作,这些事件包括INSERT、UPDATE和DELETE语句。如果定义了触发程序,当数据库执行这些语句的时候就会激发触发器执行相应的操作,触发程序是与表有关的命名数据库对象,当表上出现特定事件时,将激活该对象。

执行存储过程要使用CALL语句来调用,而触发器的执行不需要使用CALL语句调用,也不需要手工启动,只要当一个预定义的事件发生的时候,就会被MysqL自动调用。比如对student表进行操作(INSERT、DELETE或UPDATE

查询其他表,而且可以包含复杂的sql语句。它们主要用于满足复杂的业务规则或要求。可以创建只有一条语句的触发器,不过一般都是有多个执行语句的触发器用得比较多,即使单条语句的触发器,也可以使用多条语句的触发器的写法来写,看下有多个执行语句的触发器的基本写法:

tbl_name

名称,用户自行指定

包括INSERT、UPDATE和DELETE

auto_increment () (

(<span style="color: #0000ff;">create <span style="color: #0000ff;">table<span style="color: #000000;"> triggerstudentAge
(
t_studentAge
<span style="color: #0000ff;">int
<span style="color: #000000;">
);

<span style="color: #0000ff;">create <span style="color: #0000ff;">table<span style="color: #000000;"> triggerstudentPhone
(
t_studentPhone <span style="color: #0000ff;">VARCHAR(<span style="color: #800000; font-weight: bold;">15<span style="color: #000000;">)
);

trigger_student AFTER triggerstudentname triggerstudentAge triggerstudentPhone

student (,,, student (,,, student (,,,;

显示,在向student表插入数据的同时,triggerstudentname、triggerstudentAge和triggerstudentPhone三张表里面的数据都发生了裱花,INSERT动作触发了触发器。

数据库中已存在的触发器的定义、状态和语法信息等。可以通过命令来查看已经创建的触发器,有两种方式可以查看触发器,一一讲解。

截取完整,解释一下主要部分的含义:

名称,这里有两个触发器分别是tri_student和trigger_student

后执行的语句

2、在triggers表中查看触发器信息

数据库中的triggers表中查找,通过SELECT命令查看,基本语法为:

INFORMATION_SCHEMA.TRIGGERS

INFORMATION_SCHEMA.TRIGGERS TRIGGER_NAME

效果

删除触发器

删除MysqL中已经定义的触发器,删除触发器的基本语法为:

schema_name表示数据库名称,是可选的,如果省略了schema_name,将从当前数据库删除触发器,trigger_name是要删除的触发器的名称,比如:

触发器tri_student删除成功

对于相同的表,相同的事件只能创建一个触发器

MysqL将会报错,此时,只可以在表student上创建AFTER INSERT或者BEFORE UPDATE类型的触发器。灵活地运用触发器将为操作省去很多麻烦。

猜你在找的MySQL相关文章