您好,登錄后才能下訂單哦!
這篇“Mysql觸發(fā)器怎么定義與使用”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Mysql觸發(fā)器怎么定義與使用”文章吧。
觸發(fā)器是與表有關(guān)的數(shù)據(jù)庫對象,指在insert/update/delete 之前或之后,觸發(fā)并執(zhí)行
觸發(fā)器中定義的SQL語句集合。觸發(fā)器的這種特性可以協(xié)助應(yīng)用在數(shù)據(jù)庫端確保數(shù)據(jù)的
完整性,日志記錄,數(shù)據(jù)校驗(yàn)等操作。
使用別名old和new來引用觸發(fā)器中發(fā)生變化的記錄內(nèi)容,這與其它的數(shù)據(jù)庫是相似的。
現(xiàn)在觸發(fā)器還只支持行級觸發(fā),不支持語句級觸發(fā)。
觸發(fā)器類型 new和old
insert型觸發(fā)器 new表示將要揮著已經(jīng)新增的數(shù)據(jù)
update型觸發(fā)器 old表示修改之前的數(shù)據(jù),new表示將要或者已經(jīng)修改后的數(shù)據(jù)
delete型觸發(fā)器 old表示將要或者已經(jīng)刪除的數(shù)據(jù)
語法:
1:創(chuàng)建觸發(fā)器語句
create trigger 觸發(fā)器名稱 before/after insert/update/delete on 表名 for each row
begin
sql語句
end;
這里的after和before表示的是增刪改之后還是之前觸發(fā)的
2:查看觸發(fā)器語句
show triggers;
3:刪除觸發(fā)器
drop trigger 數(shù)據(jù)庫名.觸發(fā)器的名字;(如果沒有指定數(shù)據(jù)庫的名字,那么默認(rèn)是當(dāng)前數(shù)據(jù)庫)
create table user_logs( opera_text varchar(1000) comment '插入的·內(nèi)容', opera_time datetime comment '插入的時(shí)間', opera varchar(20) comment '操作的類型,insert/delete/update' ); create trigger tb_user_insert_tigger after insert on sp for each row begin insert into user_logs(opera_text, opera_time, opera) values(concat('插入的名字=',new.name,',插入的年齡=',new.age),now(),'insert'); end; show triggers; insert into sp(age, name) values (100,'大魔王');
create trigger tb_user_update_trigger after update on sp for each row begin insert into user_logs(opera_text, opera_time, opera) values (concat('更新前的名字=',old.name,' 更新前的年齡=',old.age,' 更新后的名字=',new.name,' 更新后的年齡=',new.age),now(),'update'); end; show triggers; update sp set age=1000 where name='李四';
create trigger tb_user_delete_trigger after delete on sp for each row begin insert into user_logs(opera_text, opera_time, opera) values(concat('刪除的名字=',old.name,' 刪除前的年齡=',old.age),now(),'delete'); end; show triggers; delete from sp where name='李四';
以上就是關(guān)于“Mysql觸發(fā)器怎么定義與使用”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。