• 技术文章 >数据库 >mysql教程

    mysql查询触发器的语句有哪些

    青灯夜游青灯夜游2022-06-14 15:57:03原创133

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

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

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

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

    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

    1.png

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

    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

    2.png

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

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

    SELECT * FROM information_schema.triggers \G

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

    【相关推荐:mysql视频教程

    以上就是mysql查询触发器的语句有哪些的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:mysql
    上一篇:mysql中金额用什么类型 下一篇:mysql怎么取消所有权限
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• mysql的启动失败信息会保存在哪个日志中• MySQL如何进行优化?从5个维度聊聊性能优化• mysql中触发器是什么• mysql存储过程的优缺点是什么• 整理总结nginx、php-fpm和mysql等的权限划分• mysql中去掉空格的函数有哪些
    1/1

    PHP中文网