文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL(89)MySQL查看触发器

2023-10-25 10:00

关注

MySQL查看触发器

查看触发器是指查看数据库中已经存在的触发器的定义、状态和语法信息等。MySQL 中查看触发器的方法包括 SHOW TRIGGERS 语句和查询 information_schema 数据库下的 triggers 数据表等。本节将详细介绍这两种查看触发器的方法。

SHOW TRIGGERS语句查看触发器信息

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

SHOW TRIGGERS;

示例 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. row ***************************             Trigger: trigupdate               Event: UPDATE               Table: account           Statement: INSERT INTO myevent VALUES(1,'after update')              Timing: AFTER             Created: 2020-02-24 14:07:15.08            sql_mode: STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION             Definer: root@localhostcharacter_set_client: gbkcollation_connection: gbk_chinese_ci  Database Collation: latin1_swedish_ci1 row in set (0.09 sec)

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

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

在triggers表中查看触发器信息

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

SELECT * FROM information_schema.triggers WHERE trigger_name= '触发器名';

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

示例 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*************************** 1. row ***************************           TRIGGER_CATALOG: def            TRIGGER_SCHEMA: test              TRIGGER_NAME: trigupdate        EVENT_MANIPULATION: UPDATE      EVENT_OBJECT_CATALOG: def       EVENT_OBJECT_SCHEMA: test        EVENT_OBJECT_TABLE: account              ACTION_ORDER: 1          ACTION_CONDITION: NULL          ACTION_STATEMENT: INSERT INTO myevent VALUES(1,'after update')        ACTION_ORIENTATION: ROW             ACTION_TIMING: AFTERACTION_REFERENCE_OLD_TABLE: NULLACTION_REFERENCE_NEW_TABLE: NULL  ACTION_REFERENCE_OLD_ROW: OLD  ACTION_REFERENCE_NEW_ROW: NEW                   CREATED: 2020-02-24 16:07:15.08                  SQL_MODE: STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION                   DEFINER: root@localhost      CHARACTER_SET_CLIENT: gbk      COLLATION_CONNECTION: gbk_chinese_ci        DATABASE_COLLATION: latin1_swedish_ci1 row in set (0.22 sec)

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

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

SELECT * FROM information_schema.triggers \G

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

来源地址:https://blog.csdn.net/m0_54144956/article/details/131332458

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯