mysql - 我是否需要使用一个命令在 MySQL 触发器中开始结束?

标签 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

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

最佳答案

从技术上讲,MySQL 触发器的主体只能包含一条语句。更复杂的触发器代码使用 BEGIN ... END 将多个简单语句包装成适合此目的的单个复合 语句。如果您的触发器主体由单个简单 语句组成,那么这不是必需的,并且可以省略 BEGIN ...END,尽管包含它也没有坏处。

关于mysql - 我是否需要使用一个命令在 MySQL 触发器中开始结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35758029/

相关文章:

sql-server-2008 - 动态SQL错误: 'CREATE TRIGGER' must be the first statement in a query batch

php - 变量内的 Smarty 模板变量

php - 上传多个文件 - 通知 : Array to string conversion in

mysql - 执行 SELECT INTO OUTFILE 时删除 "\N"

MySQL根据文本单词进行计数

MySQL 触发器服务密码

mysql - MySQL UPDATE 语句从字符串中删除非数字字符的正确语法是什么

mysql - 从数据库中查找即将到来的生日

php - 如何通过 PHP 表单添加 MySQL 触发器 (Prestashop 1.5.4 : installation module)

mysql - mysql中条件触发器的使用