在许多触发器示例中,即使只有一个命令,也会使用 BEGIN 和 END。
CREATE TRIGGER before_employee_update
BEFORE UPDATE ON employees
FOR EACH ROW
BEGIN
INSERT INTO employees_audit
SET action = 'update',
employeeNumber = OLD.employeeNumber,
lastname = OLD.lastname,
changedat = NOW();
END
我真的需要使用它吗?不然我为什么要用它?
从技术上讲,MySQL 触发器的主体只能包含一条语句。更复杂的触发器代码使用
BEGIN ... END
将多个简单语句包装成适合此目的的单个 compound 语句。如果您的触发器主体由单个 simple 语句组成,则没有必要,并且可以省略 BEGIN ... END
,尽管包含它并没有什么坏处。
愿神永远祝福和开启这篇评论的人和你的家人!