Mysql中的觸發(fā)器定義與使用
一、觸發(fā)器的介紹
觸發(fā)器是與表有關(guān)的數(shù)據(jù)庫(kù)對(duì)象,指在insert/update/delete 之前或之后,觸發(fā)并執(zhí)行
觸發(fā)器中定義的SQL語(yǔ)句集合。觸發(fā)器的這種特性可以協(xié)助應(yīng)用在數(shù)據(jù)庫(kù)端確保數(shù)據(jù)的
完整性,日志記錄,數(shù)據(jù)校驗(yàn)等操作。
使用別名old和new來(lái)引用觸發(fā)器中發(fā)生變化的記錄內(nèi)容,這與其它的數(shù)據(jù)庫(kù)是相似的。
現(xiàn)在觸發(fā)器還只支持行級(jí)觸發(fā),不支持語(yǔ)句級(jí)觸發(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ù)
二、觸發(fā)器的語(yǔ)法
語(yǔ)法:
1:創(chuàng)建觸發(fā)器語(yǔ)句
create trigger 觸發(fā)器名稱 before/after insert/update/delete on 表名 for each row
begin
sql語(yǔ)句
end;
這里的after和before表示的是增刪改之后還是之前觸發(fā)的
2:查看觸發(fā)器語(yǔ)句
show triggers;
3:刪除觸發(fā)器
drop trigger 數(shù)據(jù)庫(kù)名.觸發(fā)器的名字;(如果沒(méi)有指定數(shù)據(jù)庫(kù)的名字,那么默認(rèn)是當(dāng)前數(shù)據(jù)庫(kù))
(1)insert觸發(fā)器
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,'大魔王');
(2)update觸發(fā)器
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='李四';
(3)delete觸發(fā)器
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ā)器定義與使用的文章就介紹到這了,更多相關(guān)MySQL觸發(fā)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用bin-log日志還原數(shù)據(jù)庫(kù)的例子
使用bin-log日志還原數(shù)據(jù)庫(kù)的例子,供大家學(xué)習(xí)參考2013-02-02Linux(Ubuntu)下Mysql5.6.28安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了Linux(Ubuntu)下Mysql5.6.28安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01MySQL 給用戶添加 ALTER VIEW 的權(quán)限的步驟
在 MySQL 中,用戶權(quán)限的管理是非常重要的,以確保數(shù)據(jù)庫(kù)安全性和數(shù)據(jù)完整性,這篇文章主要介紹了MySQL 給用戶添加 ALTER VIEW 的權(quán)限,需要的朋友可以參考下2024-05-05mysql存儲(chǔ)過(guò)程 游標(biāo) 循環(huán)使用介紹
今天分享下自己對(duì)于Mysql存儲(chǔ)過(guò)程的認(rèn)識(shí)與了解,這里主要說(shuō)說(shuō)大家常用的游標(biāo)加循環(huán)的嵌套使用2012-11-11