MySQL觸發(fā)器

觸發(fā)器是由MySQL 的基本命令事件來觸發(fā)某種特定操作,這些基本命令由insert、update、delete等事件觸發(fā)某些特定操作。

創(chuàng)建單條執(zhí)行語句的MySQL觸發(fā)器:

create trigger trigger_name before | after insert | update | delete

on table_name for each row?

執(zhí)行語句


demo1;(插入tb_studentinfo時先插入tb_log)

delimiter //

create trigger insert_log before insert

on tb_studentinfo for each row?

insert into tb_log(time) values(now());

//

delimiter;


創(chuàng)建多條執(zhí)行語句的MySQL觸發(fā)器:

create trigger trigger_name before | after insert | update | delete

on table_name for each row?

begin

執(zhí)行語句;

執(zhí)行語句;

end


demo1:

delimiter //

create trigger delete_time after delete

on tb_studentinfo for each row

begin

insert into tb_log(time) values(now());

insert into tb_opt(str) values("delete");

end

//

delimiter;

注意:對于相同的觸發(fā)器事件如(insert,update,delete)before和after觸發(fā)器只能各一個。


查看觸發(fā)器:

show triggers;

//? 查看到該庫所有的觸發(fā)器;

select * from information_schema.triggers;

select * from information_schema.triggers where trigger_name = 'trigger_names';

//? 所有觸發(fā)器都定義在information_schema庫(默認(rèn)存在的庫)的triggers表中。

觸發(fā)器按照:before、 insert | update | delete 操作 、after的順序來執(zhí)行。

注意:觸發(fā)器中不能包含STARTTRANSCATION、COMMIT、ROLLBACK、CALL語句等。已經(jīng)更新過的數(shù)據(jù)表是不能回滾的。

刪除觸發(fā)器:

DROP trigger trigger_name;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容