使用一个命令在MySQL触发器中是否需要BEGIN END?

时间:2016-03-02 21:06:00

标签: mysql triggers

在许多触发示例中,即使只有一个命令,也会使用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

我真的需要使用它吗?否则,我为什么要使用它?

1 个答案:

答案 0 :(得分:1)

MySQL触发器的主体在技术上只能包含一个语句。更复杂的触发器代码使用BEGIN ... END将多个简单语句包装到适合此目的的单个复合语句中。如果您的触发器主体包含单个简单语句,则这不是必需的,BEGIN ... END可以省略,尽管包含它没有任何害处。