mysql查询触发器的语句有两个:1、“show triggers [from 数据库名];”语句,可查看当前数据库或指定数据库触发器的基本信息。2、“select * from information_schema.triggers where trigger_name= '触发器名';”语句,用于查看特定触发器的信息,可获取触发器的内容及其元数据,例如关联的表名和定义器。
本教程操作环境:windows7系统、mysql8版本、dell g3电脑。
查看触发器是指查看数据库中已经存在的触发器的定义、状态和语法信息等。
mysql 中查看触发器的方法有两种:
show triggers 语句
查询 information_schema 数据库下的 triggers 数据表等
1、show triggers语句查看触发器信息
在 mysql 中,可以通过 show triggers 语句来查看触发器的基本信息,语法格式如下:
show triggers [from 数据库名];
from 数据库名:是可选语句,如果要查看当前数据库中的所有触发器就省略;如果要获取特定数据库中的所有触发器,就不省略,并指定数据库名称。
示例 1
首先创建一个数据表 account,表中有两个字段,分别是 int 类型的 accnum 和 decimal 类型的 amount。sql 语句和运行结果如下:
mysql> create table account( -> accnum int(4), -> amount decimal(10,2));query ok, 0 rows affected (0.49 sec)
创建一个名为 trigupdate 的触发器,每次 account 表更新数据之后都向 myevent 数据表中插入一条数据。创建数据表 myevent 的 sql 语句和运行结果如下:
mysql> create table myevent( -> id int(11) default null, -> evtname char(20) default null);query ok, 0 rows affected (0.26 sec)
创建 trigupdate 触发器的 sql 代码如下:
mysql> create trigger trigupdate after update on account -> for each row insert into myevent values(1,'after update');query ok, 0 rows affected (0.15 sec)
使用 show triggers 语句查看触发器(在 show triggers 命令后添加\g,这样显示信息会比较有条理),sql 语句和运行结果如下:
mysql> show triggers \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 * from information_schema.triggers where trigger_name= '触发器名';
其中,'触发器名'用来指定要查看的触发器的名称,需要用单引号引起来。这种方式可以查询指定的触发器,使用起来更加方便、灵活。
这种方式允许您查看触发器的内容及其元数据,例如关联的表名和定义器,这是创建触发器的mysql用户的名称。
示例 2
下面使用 select 命令查看 trigupdate 触发器,sql 语句如下:
select * from information_schema.triggers where trigger_name= 'trigupdate'\g
上述命令通过 where 来指定需要查看的触发器的名称,运行结果如下:
mysql> select * from information_schema.triggers where trigger_name= 'trigupdate'\g
由运行结果可以看到触发器的详细信息。对以上显示信息的说明如下:
trigger_schema 表示触发器所在的数据库;
trigger_name 表示触发器的名称;
event_object_table 表示在哪个数据表上触发;
action_statement 表示触发器触发的时候执行的具体操作;
action_orientation 的值为 row,表示在每条记录上都触发;
action_timing 表示触发的时刻是 after;
还有一些其他信息,比如触发器的创建时间、sql 的模式、触发器的定义账户和字符集等,这里不再一一介绍。
上述 sql 语句也可以不指定触发器名称,这样将查看所有的触发器,sql 语句如下:
select * from information_schema.triggers \g
这个语句会显示 triggers 数据表中所有的触发器信息。
【相关推荐:mysql视频教程】
以上就是mysql查询触发器的语句有哪些的详细内容。