MySQL學習筆記6(觸發器)

2021-07-10 11:09:13 字數 2480 閱讀 3635

觸發器(trigger)是由事件來觸發某個操作。這些事件包括insert語句、update語句和delete語句。當資料庫系統執行這些事件時,就會啟用觸發器執行相應的操作。

1:觸發器的含義和作用

2:如何建立觸發器

3:如何檢視觸發器

4:如何刪除觸發器

語法基本形式為:

create trigger 觸發器名 before | after 觸發事件

on 表名 for each row 執行語句

create

trigger dept_trig1 before

insert

on department for

each

rowinsert

into trigger_time values(now());

該語句的意思是指:在向department表中插入資料前向trigger_time表中插入當前時間。

語法基本形式為:

create trigger 觸發器名 before | after 觸發事件

on 表名 for each row

begin

執行語句列表

endbegin和end之間的「執行語句列表」引數表示需要執行的多個執行語句的內容,不同的執行語句之間用分號。

delimiter ##; 程式結束符號變為##;。

create

trigger dept_trig2 after

insert

on department for

each

rowbegin

insert

into trigger_time values('21:23:05');

insert

into trigger_time values('21:25:13');

end##;

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

show triggers\g
顯示當前所有觸發器:

*****************1. row*****************

trigger: dept_trig1

event: insert

table: department

statement: insert into trigger_time values(now())

timing: before

created: 2016-03-12 20:12:41.75

sql_mode: strict_trans_tables,no_engine_substitution

definer: root@localhost

character_set_client: utf8

collation_connection: utf8_general_ci

database collation: utf8_general_ci

*****************2. row*****************

trigger: dept_trig2

event: insert

table: department

statement: begin

insert into trigger_time values(『21:23:05』);

insert into trigger_time values(『21:25:13』);

end

timing: after

created: 2016-03-12 20:33:16.32

sql_mode: strict_trans_tables,no_engine_substitution

definer: root@localhost

character_set_client: utf8

collation_connection: utf8_general_ci

database collation: utf8_general_ci

mysql中,所有觸發器的定義都存在information_schema資料庫的triggers表中。

select * from information_schema.triggers\g

select * from information_schema.triggers where trigger_name='dept_trig1'\g

第乙個語句顯示所有觸發器

第二個語句顯示指定觸發器名的觸發器

刪除觸發器使用的語法形式如下:

drop trigger 觸發器名;

Mysql學習筆記(十二)觸發器

原文 mysql學習筆記 十二 觸發器 學習內容 1.觸發器 什麼是觸發器?我們什麼時候能夠使用觸發器?觸發器就是用來監聽某個表的變化,當這個表發生變化的時候來觸發某種操作.比若說兩個表是相互關聯的,當我們在對其中乙個 進行操作的同時,另乙個表內的資料也需要進行某種操作,那麼我們就需要建立乙個觸發器...

(八)MySQL學習筆記 觸發器

觸發器有三種 觸發器型別 old的含義 new的含義 insert 型觸發器 無 因為插入前狀態無資料 new 表示將要或者已經新增的資料 update 型觸發器 old 表示修改之前的資料 new 表示將要或已經修改後的資料 delete 型觸發器 old 表示將要或者已經刪除的資料 無 因為刪除...

MySQL學習筆記(12) 觸發器

本文更新於2019 06 23,使用mysql 5.7,作業系統為deepin 15.4。目錄為了便於描述,此處將建立觸發器的ddl複述一次,其已於 sql 章節描述。create trigger triggername before after insert update delete on ta...