我需要使用一个命令在 MySQL 触发器中执行 BEGIN END 吗?

问题描述 投票:0回答:2

在许多触发器示例中,即使只有一个命令,也会使用 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 triggers
2个回答
3
投票

从技术上讲,MySQL 触发器的主体只能包含一条语句。更复杂的触发器代码使用

BEGIN ... END
将多个简单语句包装成适合此目的的单个 compound 语句。如果您的触发器主体由单个 simple 语句组成,则没有必要,并且可以省略
BEGIN ... END
,尽管包含它并没有什么坏处。


0
投票

愿神永远祝福和开启这篇评论的人和你的家人!

© www.soinside.com 2019 - 2024. All rights reserved.