<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
觸發器是一種特殊的儲存過程,觸發器和儲存過程一樣是一個能完成特定功能、儲存在資料庫伺服器上的SQL片段,但是觸發器無需呼叫,當對資料庫表中的資料執行DML操作時自動觸發這個SQL片段的執行,無需手動呼叫.
在MySQL中,只要執行insert,update,delete操作是才能觸發觸發器的執行
觸發器的這種特性可以協助應用在資料庫端確保資料的完整性,紀錄檔記錄,資料校驗等操作.
使用別名OLD和NEW來參照觸發器中發生變化的記錄內容,這與其他的資料庫是相似的,現在觸發器還值支援行級觸發,不支援語句級觸發.
① 什麼條件會觸發: insert,delete,update
② 什麼時候觸發: 在增刪改前或者後
③ 觸發頻率: 針對每一行執行
④ 觸發器定義在表上,附著在表上
-- 建立只有一個執行語句的觸發器
格式:
create trigger 觸發器名 before|after 觸發事件
on 表名 for each row
執行語句;-- 建立有多個執行語句的觸發器
格式:
create trigger 觸發器名 before|after 觸發事件
on 表名 for each row
begin
執行語句列表
end;
-- 需求:當user表新增一行資料,則會自動在user_log新增紀錄檔記錄
delimiter $$ create trigger trigger_test after insert on user for each row begin insert into user_logs values(1,now,'有新使用者增加'); end $$ delimiter;
mysql中定義了new和old,用來表示觸發器的所在表中,觸發了觸發器的哪一行資料,來參照觸發器中發生變化的記錄內容,具體如下
觸發器型別 | 觸發器型別NEW和OLD的使用 |
---|---|
INSERT 型觸發器 | NEW 表示將要或者已經新增的資料 |
UPDATE 型觸發器 | OLD 表示修改之前的資料,NEW表示將要或者已經修改後的資料 |
DELETE 型觸發器 | OLD 表示將要或者已經刪除的資料 |
使用方法: NEW.columnName(columnName為相應資料表某一列名)
-- insert delimiter && create trigger test1 after insert on user for each row begin insert into user_logs values(1,now,concat('有新使用者增加,資訊為',NEW.uid,NEW.username,NEW.password)); end $$ delimiter; -- update delimiter && create trigger test2 after update on user for each row begin insert into user_logs values(1,now,concat('修改使用者,之前資訊為',OLD.uid,OLD.username,OLD.password,'修改之後的資訊為',NEW.uid,NEW.username,NEW.password)); end $$ delimiter; -- delete delimiter && create trigger test3 after delete on user for each row begin insert into user_logs values(1,now,concat('有使用者刪除,資訊為',OLD.uid,OLD.username,OLD.password)); end $$ delimiter;
show triggers;
drop trigger if exists trigger_test;
① MYSQL中觸發器中不能對本表進行insert,update,delete操作,以免遞迴迴圈觸發
② 儘量少使用觸發器,假設觸發器觸發每次執行1s,insert table 500條資料,那麼就需要觸發500次觸發器,光是觸發器執行的時間就要花費500s,而insert 500條資料一共是1s,那麼insert的效率就非常的低了.
③ 觸發器是針對每一行的,對增刪改非常頻繁的表上切記不要使用觸發器,因為他會非常消耗資源.
到此這篇關於MySQL深入淺出掌握觸發器用法的文章就介紹到這了,更多相關MySQL觸發器內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45