意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

mysql查询触发器的语句是什么

来源:恒创科技 编辑:恒创科技编辑部
2023-12-15 20:17:59

这篇文章主要介绍“mysql查询触发器的语句是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mysql查询触发器的语句是什么”文章能帮助大家解决问题。

mysql查询触发器的语句有两个:1、“SHOW TRIGGERS [FROM 数据库名];”语句,可查看当前数据库或指定数据库触发器的基本信息。2、“SELECT * FROM information_schema.triggers WHERE trigger_name= '触发器名';”语句,用于查看特定触发器的信息,可获取触发器的内容及其元数据,例如关联的表名和定义器。


mysql查询触发器的语句是什么

本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

查看触发器是指查看数据库中已经存在的触发器的定义、状态和语法信息等。

MySQL 中查看触发器的方法有两种:

SHOW TRIGGERS 语句

查询 information_schema 数据库下的 triggers 数据表等

1、SHOW TRIGGERS语句查看触发器信息

在 MySQL 中,可以通过 SHOW TRIGGERS 语句来查看触发器的基本信息,语法格式如下:

SHOWTRIGGERS[FROM数据库名];

FROM 数据库名:是可选语句,如果要查看当前数据库中的所有触发器就省略;如果要获取特定数据库中的所有触发器,就不省略,并指定数据库名称。

示例 1

首先创建一个数据表 account,表中有两个字段,分别是 INT 类型的 accnum 和 DECIMAL 类型的 amount。SQL 语句和运行结果如下:

mysql>CREATETABLEaccount(
->accnumINT(4),
->amountDECIMAL(10,2));
QueryOK,0rowsaffected(0.49sec)

创建一个名为 trigupdate 的触发器,每次 account 表更新数据之后都向 myevent 数据表中插入一条数据。创建数据表 myevent 的 SQL 语句和运行结果如下:

mysql>CREATETABLEmyevent(
->idINT(11)DEFAULTNULL,
->evtnameCHAR(20)DEFAULTNULL);
QueryOK,0rowsaffected(0.26sec)

创建 trigupdate 触发器的 SQL 代码如下:

mysql>CREATETRIGGERtrigupdateAFTERUPDATEONaccount
->FOREACHROWINSERTINTOmyeventVALUES(1,'afterupdate');
QueryOK,0rowsaffected(0.15sec)

使用 SHOW TRIGGERS 语句查看触发器(在 SHOW TRIGGERS 命令后添加\G,这样显示信息会比较有条理),SQL 语句和运行结果如下:

mysql>SHOWTRIGGERS\G

由运行结果可以看到触发器的基本信息。对以上显示信息的说明如下:

Trigger 表示触发器的名称,在这里触发器的名称为 trigupdate;

Event 表示激活触发器的事件,这里的触发事件为更新操作 UPDATE;

Table 表示激活触发器的操作对象表,这里为 account 表;

Statement 表示触发器执行的操作,这里是向 myevent 数据表中插入一条数据;

Timing 表示触发器触发的时间,这里为更新操作之后(AFTER);

还有一些其他信息,比如触发器的创建时间、SQL 的模式、触发器的定义账户和字符集等,这里不再一一介绍。

SHOW TRIGGERS 语句用来查看当前创建的所有触发器的信息。因为该语句无法查询指定的触发器,所以在触发器较少的情况下,使用该语句会很方便。如果要查看特定触发器的信息或者数据库中触发器较多时,可以直接从 information_schema 数据库中的 triggers 数据表中查找。

2、在triggers表中查看触发器信息

在 MySQL 中,所有触发器的信息都存在 information_schema 数据库的 triggers 表中,可以通过查询命令 SELECT 来查看,具体的语法如下:

SELECT*FROMinformation_schema.triggersWHEREtrigger_name='触发器名';

其中,'触发器名'用来指定要查看的触发器的名称,需要用单引号引起来。这种方式可以查询指定的触发器,使用起来更加方便、灵活。

这种方式允许您查看触发器的内容及其元数据,例如关联的表名和定义器,这是创建触发器的MySQL用户的名称。

示例 2

下面使用 SELECT 命令查看 trigupdate 触发器,SQL 语句如下:

SELECT*FROMinformation_schema.triggersWHERETRIGGER_NAME='trigupdate'\G

上述命令通过 WHERE 来指定需要查看的触发器的名称,运行结果如下:

mysql>SELECT*FROMinformation_schema.triggersWHERETRIGGER_NAME='trigupdate'\G

由运行结果可以看到触发器的详细信息。对以上显示信息的说明如下:

TRIGGER_SCHEMA 表示触发器所在的数据库;

TRIGGER_NAME 表示触发器的名称;

EVENT_OBJECT_TABLE 表示在哪个数据表上触发;

ACTION_STATEMENT 表示触发器触发的时候执行的具体操作;

ACTION_ORIENTATION 的值为 ROW,表示在每条记录上都触发;

ACTION_TIMING 表示触发的时刻是 AFTER;

还有一些其他信息,比如触发器的创建时间、SQL 的模式、触发器的定义账户和字符集等,这里不再一一介绍。

上述 SQL 语句也可以不指定触发器名称,这样将查看所有的触发器,SQL 语句如下:

SELECT*FROMinformation_schema.triggers\G

这个语句会显示 triggers 数据表中所有的触发器信息。

关于“mysql查询触发器的语句是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注恒创行业资讯频道,小编每天都会为大家更新不同的知识点。

上一篇: mysql默认引擎指的是什么 下一篇: MySQL的用户如何管理