亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL觸發器然后使用

發布時間:2022-03-15 15:58:07 來源:億速云 閱讀:421 作者:iii 欄目:MySQL數據庫

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

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類型的操作
end;


#示例
-- 創建觸發器:當學?信息表發?添加操作時,則向?志信息表中記錄?條?志
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,'學?信息')); 


#update操作中:OLD表示修改前的記錄
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觸發器然后使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平阳县| 临沭县| 堆龙德庆县| 黄大仙区| 文化| 罗城| 九寨沟县| 安仁县| 汶上县| 唐海县| 长寿区| 耿马| 阜城县| 襄城县| 浦县| 尉犁县| 伊吾县| 阿尔山市| 连云港市| 黑河市| 孟津县| 绍兴市| 石城县| 东乡县| 厦门市| 晋中市| 福贡县| 卫辉市| 集贤县| 和田县| 宝丰县| 大兴区| 桂平市| 凤山市| 自治县| 纳雍县| 濮阳县| 水富县| 盐山县| 临颍县| 湘阴县|