MySQL 触发器

MySQL 触发器

MySQL 触发器是 MySQL 中管理数据的有力工具。通过对数据表的相关操作来触发、激活从而实现自动执行。

触发器的优缺点

触发器的执行是自动的,当对触发器相关表的数据做出相应的修改后立即执行。

触发器可以实施比 FOREIGN KEY 约束、CHECK 约束更为复杂的检查和操作。

触发器可以实现表数据的级联更改,在一定程度上保证了数据的完整性。

触发器的缺点

使用触发器实现的业务逻辑在出现问题时很难进行定位,特别是涉及到多个触发器的情况下,会使后期维护变得困难。

大量使用触发器容易导致代码结构被打乱,增加了程序的复杂性,

如果需要变动的数据量较大时,触发器的执行效率会非常低。

MySQL 支持的触发器

在实际使用中,MySQL 所支持的触发器有三种:INSERT 触发器、UPDATE 触发器和 DELETE 触发器。

1 INSERT 触发器

在 INSERT 语句执行之前或之后响应的触发器。

2 UPDATE 触发器

在 UPDATE 语句执行之前或之后响应的触发器。

3 DELETE 触发器

在 DELETE 语句执行之前或之后响应的触发器。

创建触发器

语法 :

CREATE <触发器名> < BEFORE | AFTER >
<INSERT | UPDATE | DELETE >
ON <表名> FOR EACH Row <触发器主体>

示例

CREATE TRIGGER updateclasstotalnumber AFTER INSERT 
ON students FOR EACH ROW 
UPDATE classes set class_total_number = class_total_number + 1 WHERE class_id = NEW.class_id;

查看触发器

SHOW TRIGGERS;

删除触发器

DROP TRIGGER double_salary;

修改触发器

修改触发器可以通过删除原触发器,再以相同的名称创建新的触发器。