觸發器
觸發器( trigger )用於監視某種情況並觸發某種操作,它是與表事件相關的特殊的存儲過程,它的執行不是由程序調用,而是由事件來觸發。例如,當對某張表進行insert. delete、 update操作時就會觸發執行它。
#創建觸發器語法
CREATE TRIGGER trigger_name trigger._time trigger_event ON table_name FOR EACH ROW trigger_stmt
參數說明:
trigger_name :觸發器名稱
trigger_time :觸發時間,取值有before. after
trigger_event :觸發事件,取值有insert. update、 delete
table_name :觸發器監控的表名
trigger_stmt :觸發執行的語句,可以使用OLD. NEW來引用變化前後的記錄內容
NEW.columnName :獲取INSERT觸發事件中新插入的數據
OLD.columnName :獲取UPDATE和DELETE觸發事件中被更新、刪除的數據
測試數據及需求參見上一講
drop table if exists user_info;
drop table if exists email_info;
create table user_info(
id int not null auto_increment primary key,
name varchar(30),
email varchar(50)
);
insert into user_info(id, name, email) values(1, 'liusan','[email protected]);
insert into user_info(id, name, email) values(2, '張三,'[email protected]');
create table email_info(
id int not null auto_increment primary key,
email varchar(50),
content text,
send_time datetime
);
觸發器的實現
見下圖