首页 > 网络运维 > Linux/Mysql > 正文

Mysql创建触发器语句

Mysql创建触发器语句

什么是触发器?

触发器(Trigger)是一种基于SQL语言的特殊存储过程,在特定的数据库事件发生时发出信号,完成自动化的任务处理。触发器不是一种独立的存储过程,而是一组由“CREATE TRIGGER”指令定义的语句,它使用SQL语言编写,该指令可以定义一个或多个SQL语句,每个SQL语句都可以触发一个特定的事件,实现数据库对象之间的交互,从而完成复杂的任务。

MySQL创建触发器语句

MySQL中创建触发器是使用create trigger语句进行实现的,下面列举出MySQL创建触发器语句。

CREATE [DEFINER = {user | CURRENT_USER }]

TRIGGER trigger_name

trigger_time trigger_event

ON tbl_name FOR EACH ROW

[trigger_order]

trigger_body

trigger_time: BEFORE | AFTER

trigger_event: INSERT | UPDATE | DELETE

trigger_order: FOLLOWS | PRECEDES

trigger_body: SQL 语句及其他相关语句

其定义的语句形式如下:

CREATE TRIGGER salary_check

AFTER INSERT ON employees

FOR EACH ROW

BEGIN

IF (NEW.salary > 10000) THEN

INSERT INTO log_table(name, action) VALUES (NEW.name, "salary higher than 10000");

END IF;

END

实例:

在这个实例中,我们将创建一个可以在插入employees表的新行的时候检查工资是否大于10000的触发器。

步骤1:使用以下语句创建触发器:

CREATE TRIGGER sal_check

AFTER INSERT ON employees

FOR EACH ROW

BEGIN

IF (NEW.salary > 10000) THEN

INSERT INTO log_table(name, action) VALUES (NEW.name, "salary higher than 10000");

END IF;

END

步骤2:测试触发器

接下来,我们在employees表中插入一条新记录,看看触发器是否工作:

INSERT INTO employees(name, salary) VALUES ("John”, 12000);

步骤3:检查log_table是否有新的插入项

最后,我们可以使用下面的查询语句检查log_table是否有插入新的记录:

SELECT * FROM log_table WHERE name = "John" AND action = "salary higher than 10000";

解密

以上就是MySQL中创建触发器语句的详细介绍,从一个应用实例可以看出,创建触发器是非常简单的,不仅实现了特定条件下自动触发某些任务,而且可以大大提高系统性能和有效性,减轻系统维护的负担。在设计数据库时,用户可以根据特定的需求来决定是否使用触发器,以此实现真正意义上的自动化,提高系统效率。

打赏
海报

本文转载自互联网,旨在分享有价值的内容,文章如有侵权请联系删除,部分文章如未署名作者来源请联系我们及时备注,感谢您的支持。

转载请注明本文地址:http://atpbike.com/article/mysql/2343.html

相关推荐

支付宝
微信
赞助本站