MySql教程
MySql用户管理
MySQL数据库
MySql表格和视图
MySQL查询
MySQL索引
MySQL子句
MySQL授权
MySql控制流
MySQL条件
MySQL连接
MySQL键
MySQL触发器
MySQL聚合函数
MySQL常用
MySQL正则表达式
MySql差异性

MySQL 触发器

MySQL中的触发器是驻留在系统目录中的一组SQL语句。 这是一种特殊的存储过程,可根据事件自动调用。每个触发器都与一个表相关联,该表可以在任何DML语句(例如 INSERT,UPDATE DELETE )上激活。
触发器称为特殊过程,因为它不能像存储过程一样直接调用。触发器和过程之间的主要区别在于,对表进行数据修改事件时,将自动调用触发器。相反,必须显式调用存储过程。
通常,根据触发器有两种类型"。 sql-tutorial"> SQL 标准: 行级触发器和语句级触发器。
行级触发器: 这是一个触发器,为每行由触发语句(例如插入,更新或删除)组成。例如,如果一个表已插入,更新或删除了多行,则会自动为受 insert ,更新或删除语句。
语句级触发器: 这是一个触发器,无论表中有多少行,该触发器都会为表上发生的每个事件触发一次插入,更新或删除。
注意: 我们应该知道MySQL不支持语句级触发器。它仅支持行级触发器。

为什么在MySQL中需要使用触发器?

由于以下功能,我们在MySQL中需要/使用触发器:
触发器可以帮助我们执行业务规则。 触发器可以帮助我们在插入或更新数据之前对其进行验证。 触发器可以帮助我们记录记录,例如在表中维护审核记录。 SQL触发器提供了另一种方法来检查数据的完整性。 触发器提供了运行计划任务的另一种方法。 触发器可以提高SQL查询的性能,因为它不需要在每次执行查询时都进行编译。 触发程序减少了客户端代码,从而节省了时间和精力。 触发器可以帮助我们在不同平台上扩展应用程序。 触发器易于维护。

在MySQL中使用触发器的限制

MySQL触发器不允许使用所有验证。他们仅提供扩展的验证。 例如,我们可以使用NOT NULL,UNIQUE,CHECK和FOREIGN KEY约束进行简单验证。 触发器是从客户端应用程序无形地调用和执行的。因此,对数据库层中发生的问题进行故障诊断并不容易。 触发器可能会增加数据库服务器的开销。

MySQL中的触发器类型?

我们可以定义触发器形式的最多六种动作或事件:
插入前: 在将数据插入表之前将其激活。 插入后: 在将数据插入表中后将被激活。 更新前: 在更新表中的数据之前将其激活。 更新后: 在更新表中的数据后将其激活。 删除前: 在从表中删除数据之前将其激活。 删除后: 从表中删除数据后将其激活。
当我们使用不使用INSERT,UPDATE或DELETE查询的语句来更改表中的数据时,将不会调用与该触发器关联的触发器。

命名约定

命名约定是我们遵循的一组规则,用于提供适当的唯一名称。它节省了我们使工作井井有条和易于理解的时间。因此, 我们必须为与表关联的每个触发器使用唯一的名称。但是,为不同的表定义相同的触发器名称是一个好习惯。
应使用以下命名约定在 MySQL :
(BEFOR| AFTER) table_name (INSERT | UPDATE | DELETE)
因此,
触发激活时间:
触发事件后: 插入|更新|删除

如何在MySQL中创建触发器?

我们可以使用 CREATE TRIGGER 语句在MySQL中创建新触发器。以下是在MySQL中创建触发器的语法:
CREATE TRIGGER trigger_name  
    (AFTER | BEFORE) (INSERT | UPDATE | DELETE)
         ON table_name for EACH ROW  
         BEGIN  
     --variable declarations  
     --trigger code  
        END;   

昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4