觸發器有三種:
觸發器型別
old的含義
new的含義
insert 型觸發器
無 (因為插入前狀態無資料)
new 表示將要或者已經新增的資料
update 型觸發器
old 表示修改之前的資料
new 表示將要或已經修改後的資料
delete 型觸發器
old 表示將要或者已經刪除的資料
無 (因為刪除後狀態無資料)
-- 建立觸發器標準語法
delimiter $
create
trigger 觸發器名稱
before|
after
insert
|update
|delete
on 表名
[for each row
]-- 行級觸發器
begin
觸發器要執行的功能;
end$
delimiter
;
create
database db9;
use db9;
-- 建立賬戶表account
create
table account(
id int
primary
keyauto_increment
, name varchar(20
),money double);
-- 插入資料
insert
into account values
(null
,'小王'
,3000),
(null
,'小劉'
,4000),
(null
,'小李'
,6000),
(null
,'小孫'
,2000);
-- 建立日誌表
create
table account_log(
id int
primary
keyauto_increment
,-- 主鍵id
operation varchar(20
),-- 操作型別(insert?update?delete?)
operation_time datetime
,-- 操作時間
operation_id int
,-- 操作表中的id
operation_params varchar
(200
)-- 操作引數
);
-- 建立insert型觸發器
delimiter $
create
trigger account_insert
after
insert
on account
for each row
begin
insert
into account_log values
(null
,'insert'
,now()
,new.id,concat(
'插入後'))
;end $
delimiter
;-- 測試
insert
into account values
(null
,'阿彪'
,888);
select
*from account;
select
*from account_log;
-- 建立update型觸發器
delimiter $
create
trigger account_update
after
update
on account
for each row
begin
insert
into account_log values
(null
,'update'
,now()
,new.id,concat(
'更新前'
'更新後'))
;end $
delimiter
;-- 測試
update account set money=
2000
where name=
'阿彪'
;select
*from account;
select
*from account_log;
-- 建立delete型觸發器
delimiter $
create
trigger account_delete
after
delete
on account
for each row
begin
insert
into account_log values
(null
,'delete'
,now()
,old.id,concat(
'刪除前'))
;end $
delimiter
;-- 測試delete型觸發器
delete
from account where name=
'阿彪'
;select
*from account;
select
*from account_log;
-- 檢視觸發器
show triggers;
-- 刪除觸發器
drop
trigger account_insert;
drop
trigger account_update;
drop
trigger account_delete;
MySQL學習筆記6(觸發器)
觸發器 trigger 是由事件來觸發某個操作。這些事件包括insert語句 update語句和delete語句。當資料庫系統執行這些事件時,就會啟用觸發器執行相應的操作。1 觸發器的含義和作用 2 如何建立觸發器 3 如何檢視觸發器 4 如何刪除觸發器 語法基本形式為 create trigger...
Mysql學習筆記(十二)觸發器
原文 mysql學習筆記 十二 觸發器 學習內容 1.觸發器 什麼是觸發器?我們什麼時候能夠使用觸發器?觸發器就是用來監聽某個表的變化,當這個表發生變化的時候來觸發某種操作.比若說兩個表是相互關聯的,當我們在對其中乙個 進行操作的同時,另乙個表內的資料也需要進行某種操作,那麼我們就需要建立乙個觸發器...
MySQL學習筆記(12) 觸發器
本文更新於2019 06 23,使用mysql 5.7,作業系統為deepin 15.4。目錄為了便於描述,此處將建立觸發器的ddl複述一次,其已於 sql 章節描述。create trigger triggername before after insert update delete on ta...