MySQL 触发器可以使用 BEGIN…END 结构执行多个语句。在 BEGIN 块内,我们还可以使用存储例程中允许的其他语法,例如条件语句和循环。为了说明这个概念,我们使用以下 BEFORE INSERT 触发器的示例,其中包含 IF 条件语句:示例 mysql> Create Trigger before_inser_studentage BEFORE INSERT ON student_age FOR EACH ROW BEGIN IF NEW.age < 0 THEN SET NEW.age = 0; ELSEIF NEW.age > 100 THEN SET NEW.age = 100; END IF; END // Query OK, 0 rows affected (0.30 sec)
在这种情况下,MySQL 将按照创建触发器的顺序调用它们。但是,可以使用以下选项更改顺序:FOLLOWS 选项此选项允许新触发器在现有触发器之后激活。语法 FOR EACH ROW FOLLOWS trigger_name PRECEDES 选项此选项允许新触发器在现有触发器之前激活。语法 FOR EACH ROW PRECEDES trigger_name