mysql怎么查看触发器
时间 : 2023-03-09 09:23:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

在 MySQL 数据库中,可以通过 `SHOW TRIGGERS` 命令或者查询 `INFORMATION_SCHEMA` 数据库的相关表来查看触发器。

## 使用 SHOW TRIGGERS 命令查看触发器

`SHOW TRIGGERS` 命令可以列出当前数据库中的所有触发器及其定义,具体语法如下:

SHOW TRIGGERS [FROM db_name] [LIKE 'pattern']

其中,`FROM db_name` 是可选参数,表示要查看的数据库名称;`LIKE 'pattern'` 是可选参数,表示过滤条件,其中 `pattern` 是一个字符串模式。

例如,要查看当前数据库中所有触发器的信息,可以执行以下命令:

SHOW TRIGGERS;

通过该命令,可以获取以下信息:

- `Trigger`:触发器名称;

- `Event`:触发事件,即触发器是在何种操作后触发的;

- `Table`:所属表名;

- `Statement`:触发器定义的 SQL 语句;

- `Timing`:触发时机,即在何时触发;

- `Created`:触发器创建的日期和时间;

- `sql_mode`:触发器关联的 sql_mode。

例如,以下是通过 `SHOW TRIGGERS` 命令获取到的第一条记录信息:

Trigger: myTrigger

Event: INSERT

Table: myTable

Statement: BEGIN

-- 触发器定义的 SQL 语句

END

Timing: AFTER

Created: 2022-06-10 10:00:00

sql_mode: STRICT_TRANS_TABLES

## 使用 INFORMATION_SCHEMA 查询触发器

在 MySQL 数据库中,`INFORMATION_SCHEMA` 数据库存储了关于数据库、表、列、索引等的所有系统信息,也包括触发器的信息。可以通过查询 `INFORMATION_SCHEMA.TRIGGERS` 视图来获取数据库中所有触发器的信息。

以下是查询 `INFORMATION_SCHEMA.TRIGGERS` 视图的语法:

SELECT TRIGGER_SCHEMA, TRIGGER_NAME, EVENT_MANIPULATION, EVENT_OBJECT_SCHEMA,

EVENT_OBJECT_TABLE, ACTION_STATEMENT, ACTION_ORIENTATION, ACTION_TIMING,

ACTION_CONDITION, CREATED, SQL_MODE

FROM INFORMATION_SCHEMA.TRIGGERS

通过该查询语句,可以获取以下信息:

- `TRIGGER_SCHEMA`:触发器所属的数据库名称;

- `TRIGGER_NAME`:触发器名称;

- `EVENT_MANIPULATION`:触发事件,即何种操作后触发的;

- `EVENT_OBJECT_SCHEMA`:所属表所在的数据库名称;

- `EVENT_OBJECT_TABLE`:所属表名称;

- `ACTION_STATEMENT`:触发器定义的 SQL 语句;

- `ACTION_ORIENTATION`:触发器所要调用的程序类型;

- `ACTION_TIMING`:触发时机,即在何时触发;

- `ACTION_CONDITION`:触发条件;

- `CREATED`:触发器创建的日期和时间;

- `SQL_MODE`:触发器关联的 sql_mode。

例如,以下是通过查询 `INFORMATION_SCHEMA` 数据库的视图获取到的第一条触发器信息:

TRIGGER_SCHEMA: myDatabase

TRIGGER_NAME: myTrigger

EVENT_MANIPULATION: INSERT

EVENT_OBJECT_SCHEMA: myDatabase

EVENT_OBJECT_TABLE: myTable

ACTION_STATEMENT: BEGIN

-- 触发器定义的 SQL 语句

END

ACTION_ORIENTATION: ROW

ACTION_TIMING: AFTER

ACTION_CONDITION: NULL

CREATED: 2022-06-10 10:00:00

SQL_MODE: STRICT_TRANS_TABLES

总结:

以上介绍了两种查询 MySQL 数据库中触发器的方法,一种是通过 `SHOW TRIGGERS` 命令,另一种是通过查询 `INFORMATION_SCHEMA.TRIGGERS` 视图。通过观察触发器的定义,可以更好地了解 MySQL 数据库中的数据逻辑。