关键词

MySQL查看触发器方法详解

要查看MySQL中的触发器,可以使用以下命令:

SHOW TRIGGERS [FROM database_name] [LIKE 'pattern'];

其中,database_name 为要查看的数据库名称(可选),pattern 为要匹配的触发器名称(可选)。

此外,也可以使用以下命令查看指定触发器的详细信息:

SHOW CREATE TRIGGER trigger_name;

其中,trigger_name 为要查看详细信息的触发器名称。

下面以实例说明:

1. 创建一个测试数据库

CREATE DATABASE test_db;
USE test_db;

2. 创建一个测试表

CREATE TABLE users (
  id INT NOT NULL AUTO_INCREMENT,
  name VARCHAR(50) NOT NULL,
  email VARCHAR(50) NOT NULL,
  age INT NOT NULL,
  PRIMARY KEY (id)
);

3. 创建一个测试触发器

CREATE TRIGGER insert_user
AFTER INSERT ON users
FOR EACH ROW
BEGIN
  INSERT INTO user_log (user_id, action) VALUES (NEW.id, 'inserted');
END;

此触发器会在 users 表中插入数据后,向 user_log 表中插入一条记录。

4. 查看该数据库中所有触发器

SHOW TRIGGERS FROM test_db;

输出结果如下:

Trigger Event Table Statement Timing Created sql_mode
insert_user INSERT users INSERT INTO user_log (user_id, action) VALUES (NEW.id, 'inserted') AFTER 2022-05-19 09:21:26

该结果表明,在 test_db 数据库中,只有一个触发器 insert_user,它是在 users 表的 INSERT 操作之后被触发。

5. 查看该触发器的详细信息

SHOW CREATE TRIGGER insert_user;

输出结果如下:

Trigger sql_mode Create Trigger
insert_user CREATE DEFINER=code>root@localhost TRIGGER insert_user AFTER INSERT ON users FOR EACH ROW BEGIN INSERT INTO user_log (user_id, action) VALUES (NEW.id, 'inserted'); END

该结果表明,该触发器的名称是 insert_user,它是在 users 表的 INSERT 操作之后被触发,对应的触发器操作为:

INSERT INTO user_log (user_id, action) VALUES (NEW.id, 'inserted');

本文链接:http://task.lmcjl.com/news/17941.html

展开阅读全文