久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL觸發器然后使用

151次閱讀
沒有評論

共計 2158 個字符,預計需要花費 6 分鐘才能閱讀完成。

這篇“MySQL 觸發器然后使用”文章的知識點大部分人都不太理解,所以丸趣 TV 小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“MySQL 觸發器然后使用”文章吧。

觸發器一、觸發器的介紹

觸發器,就是?種特殊的存儲過程。觸發器和存儲過程?樣是?個能夠完成特定功能、存儲

在數據庫服務器上的 SQL ?段,但是觸發器?需調?,當對數據表中的數據執? DML 操作時

?動觸發這個 SQL ?段的執?,?需?動調?。

在 MySQL, 只有執? insert\delete\update 操作才能觸發觸發器的執?。

二、觸發器使用 1. 創建觸發器

create trigger tri_name -- tri_name: 觸發器別名
 before|after   --  定義觸發時機
 insert|delete|update --  定義 DML 類型
ON  table_name --  要觸發的表
for each  row|statement 
-- for each row  聲明為?級觸發器(操作的每?條記錄就觸發觸發器執??次)-- for each statement  聲明語句級觸發器(觸發動作體執行一次)begin --  當只有一句 sql 語句時,begin...end  可以省略 
 sql_statement  --  進行觸發器對應的 DML 類型的操作

--  創建觸發器:當學?信息表發?添加操作時,則向?志信息表中記錄?條?志 create trigger tri_test1 after insert on students for each row insert into stulogs(time,log_text) values(now(), concat(添   加 ,NEW.stu_num, 學?信息

2. 查看觸發器

# 查看全部觸發器
show triggers;
#查看觸發器的創建語句
show create trigger  觸發器名字;

3. 刪除觸發器

觸發器不能修改,只能刪除

drop trigger  觸發器名字;

三、NEW 與 OLD

觸發器?于監聽對數據表中數據的 insert、delete、update 操作,在觸發器中通常處理

?些 DML 的關聯操作;我們可以使? NEW 和 OLD 關鍵字在觸發器中獲取觸發這個觸發器

的 DML 操作的數據

NEW : 在觸發器中?于獲取 insert 操作添加的數據、update 操作修改后的記錄

OLD:在觸發器中?于獲取 delete 操作刪除前的數據、update 操作修改前的數據

1.NEW 的使用

#insert 操作中:NEW 表示添加的新記錄
create trigger tri_test1
after insert on students
for each row
insert into stulogs(time,log_text) values(now(), concat( 添   加 ,NEW.stu_num, 學?信息 

#update 操作中:NEW  表示修改后的數據 --  創建觸發器  :  在監聽 update 操作的觸發器中,可以使? NEW 獲取修改后的數據 create trigger tri_test2 after update on students for each row insert into stulogs(time,log_text) values(now(), concat( 修改學?信息 為:,NEW.stu_num,NEW.stu_name));

2.OLD 的使用

#delete 操作中:OLD 表示刪除的記錄
create trigger tri_test3
after delete on students for each row
insert into stulogs(time,log_text) values(now(), concat( 刪   除 ,OLD.stu_num, 學?信息  

create trigger tri_test2 after update on students for each row insert into stulogs(time,log_text) values(now(), concat( 將學?姓名從【,OLD.stu_name,】修改為【,NEW.stu_name,】

四、10.4 觸發器使?總結 1. 優點

觸發器是?動執?的,當對觸發器相關的表執?響應的 DML 操作時?即執?;

觸發器可以實現表中的數據的級聯操作(關聯操作),有利于保證數據的完整性;

觸發器可以對 DML 操作的數據進?更為復雜的合法性校驗

2. 缺點

使?觸發器實現的業務邏輯如果出現問題將難以定位,后期維護困難;

?量使?觸發器容易導致代碼結構雜亂,增加了程序的復雜性;

當觸發器操作的數據量?較?時,執?效率會??降低。

3. 使?建議

在互聯?項?中,應避免適應觸發器;

對于并發量不?的項?可以選擇使?存儲過程,但是在互聯?引?中不提倡使?存儲過程

(原因:存儲過程時將實現業務的邏輯交給數據庫處理,?則增減了數據庫的負載,?則不利于數據庫的遷移)

以上就是關于“MySQL 觸發器然后使用”這篇文章的內容,相信大家都有了一定的了解,希望丸趣 TV 小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注丸趣 TV 行業資訊頻道。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-15發表,共計2158字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 长泰县| 阜城县| 宁海县| 讷河市| 柳河县| 铜陵市| 内黄县| 海城市| 西城区| 汕头市| 黄浦区| 宜丰县| 澄城县| 东辽县| 天柱县| 肃宁县| 靖远县| 宜丰县| 双峰县| 罗甸县| 西贡区| 连江县| 驻马店市| 彰武县| 福清市| 绥棱县| 灵璧县| 七台河市| 嘉定区| 石林| 鲜城| 务川| 会理县| 蓬安县| 盐亭县| 浏阳市| 锡林浩特市| 涪陵区| 花莲县| 兴仁县| 伊通|