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