14 檢視觸發器

2021-10-25 18:29:28 字數 3882 閱讀 2664

檢視觸發器是指檢視資料庫中已經存在的觸發器的定義、狀態和語法資訊等。

mysql 中檢視觸發器的方法包括show triggers語句和查詢 information_schema 資料庫下的 triggers 資料表等。

在 mysql 中,可以通過show triggers語句來檢視觸發器的基本資訊,語法格式如下:

show triggers;
示例 1

首先建立乙個資料表 account,表中有兩個字段,分別是 int 型別的 accnum 和 decimal 型別的 amount。sql 語句和執行結果如下:

mysql>

create

table account(

-> accnum int(4

),-> amount decimal(10

,2))

;

建立乙個名為 trigupdate 的觸發器,每次 account 表更新資料之後都向 myevent 資料表中插入一條資料。建立資料表 myevent 的 sql 語句和執行結果如下:

mysql>

create

table myevent(

-> id int(11

)default

null,-

> evtname char(20

)default

null

);

建立 trigupdate 觸發器的 sql **如下:

mysql>

create

trigger trigupdate

after

update

on account

->

for each row

insert

into myevent values(1

,'after update'

);

使用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

-2414: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_ci

由執行結果可以看到觸發器的基本資訊。對以上顯示資訊的說明如下:

show triggers語句用來檢視當前建立的所有觸發器的資訊。因為該語句無法查詢指定的觸發器,所以在觸發器較少的情況下,使用該語句會很方便。如果要檢視特定觸發器的資訊或者資料庫中觸發器較多時,可以直接從 information_schema 資料庫中的 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: after

action_reference_old_table: null

action_reference_new_table: null

action_reference_old_row: old

action_reference_new_row: new

created: 2020-02

-2416: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_ci

由執行結果可以看到觸發器的詳細資訊。對以上顯示資訊的說明如下:

上述 sql 語句也可以不指定觸發器名稱,這樣將檢視所有的觸發器,sql 語句如下:

select

*from information_schema.triggers \g

這個語句會顯示 triggers 資料表中所有的觸發器資訊。

my sql 觸發器 MySQL檢視觸發器

檢視觸發器是指檢視資料庫中已經存在的觸發器的定義 狀態和語法資訊等。mysql 中檢視觸發器的方法包括 show triggers 語句和查詢 information schema 資料庫下的 triggers 資料表等。本節將詳細介紹這兩種檢視觸發器的方法。show triggers語句檢視觸發器...

Oracle檢視表觸發器

oracle查出表所有的觸發器及觸發器詳細資訊 一.查all triggers表得到trigger name sql select trigger name from all triggers where table name 二.根據trigger name查詢出觸發器詳細資訊 sql selec...

觸發器 mysql觸發器

觸發器是一種特殊的儲存過程,它在插入 刪除或修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。和儲存過程一樣,很少使用。1 觸發器的作用 2 建立觸發器 建立測試環境 mysql create database test db query ok,1 row aff...