日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

詳解MySQL數據庫之觸發器

瀏覽:24日期:2023-10-10 18:26:55
1 引言

本文是對MySQL中觸發器的總結,從觸發器概念出發,結合實例對創建觸發器、使用觸發器、刪除觸發器進行介紹。

2 觸發器簡介

MySQL觸發器和存儲過程一樣,都是嵌入到MySQL的一段程序。觸發器是由事件來觸發某個操作,這些事件包括INSERT、UPDATE、DELETE。如果定義了觸發器,當數據庫執行這些語句的時候就會激活觸發器執行相應的操作,觸發程序是與表有關的命令數據庫對象,當表上出現特定事件,將激活該對象。

觸發器是一個特殊的存儲過程,不同的是,執行存儲過程要使用call語句來調用,而觸發器的執行不需要用call來調用,也不需要手工啟動,只要當一個預定義的事件發生,觸發器就會被MySQL自動調用。觸發器可以查詢其他表,而且可以包含復雜的SQL語句。

3創建觸發器

(1)創建只有一條執行語句的觸發器

語法結構如下:

CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW trigger_stmt

trigger_name:用戶自定義的觸發器名稱;

trigger_time:標識觸發事件,可以指定為before(時間發生前執行)或after(事件發生后執行);

trigger_event:標識觸發事件,包括INSERT、UPDATE、DELETE;

table_name:觸發器建立在哪個表上;

trigger_stmt:觸發器執行語句。

(2)創建有多個執行語句的觸發器

語法結構如下:

CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW BEGIN 語句執行列表 END

當觸發器有至少一條的執行語句時,多條執行語句需要用BEGIN和END包裹,分別表示整個代碼塊的開始和結束。

為演示觸發器操作,我們先創建一下三個數據表:

create table tb_student( id int PRIMARY key auto_increment, name varchar(10));create table tb_before_trigger( id int PRIMARY key auto_increment, num int , time_now datetime NULL DEFAULT CURRENT_TIMESTAMP);create table tb_after_trigger( id int PRIMARY key auto_increment, num int , time_now datetime NULL DEFAULT CURRENT_TIMESTAMP);

示例1:創建一個名為before_trigger的觸發器,該觸發器會在每次對表tb_student執行insert操作前觸發,觸發時會往before_trigger表插入一條包含tb_student表總記錄數的記錄。

delimiter //create trigger before_trigger before insert on tb_student for each row begin insert into tb_before_trigger (num) select count(*) from tb_student; end //delimiter ;

示例2:創建一個名為after_trigger的觸發器,該觸發器會在每次對表tb_student執行insert操作前觸發,觸發時會向before_trigger表插入一條包含tb_student表總記錄數的記錄。

delimiter //create trigger after_trigger after insert on tb_student for each row begin insert into tb_after_trigger (num) select count(*) from tb_student; end //delimiter ;

來測試一下示例1和示例2中創建的觸發器,往tb_student表中插入一條數據(插入前3個表沒有任何記錄):

insert into tb_student (name) values(’zhangsan’);

插入后,查看三個表中數據:

tb_student表:

詳解MySQL數據庫之觸發器

tb_before_trigger表:

詳解MySQL數據庫之觸發器

tb_after_trigger表:

詳解MySQL數據庫之觸發器

可以看到,在tb_student表執行insert操作后,另外兩個表也分別更新了記錄,tb_before_trigger表num值為0,證明在tb_student執行insert操作前插入的;tb_after_trigger表num值為1,證明在tb_student執行insert操作后插入的——這就是before與after的區別。

對于其他條件觸發器,使用方法與示例1和示例2類似,本文不在演示。

4 查看觸發器

(1)show triggers語句

通過show triggers語句可以查看示例1和示例2中創建的觸發器:

show triggers;

輸出結果:

詳解MySQL數據庫之觸發器

(2)在triggers表中查看觸發器

在information_schema數據庫的triggers表中存放在MySQL數據庫中的所有觸發器,可以通過查詢語句進行查看:

select * from information_schema.triggers where trigger_name = ’before_trigger’ ;

輸出結果:

詳解MySQL數據庫之觸發器

當不指定查詢條件時,即是指查看所有觸發器信息。

5 刪除觸發器

使用DROP TRIGGER語句可以刪除觸發器,基本語法結構如下:

DROP TRIGGER [schema_name] trigger_name

其中,schema_name表示數據庫名稱,是可選參數,如果省略則表示從當前數據庫中刪除觸發器。

示例3:刪除示例1中創建的觸發器before_trigger

drop trigger before_trigger;6 總結

在某些時候,觸發器可以起到錦上添花的作用,但是,觸發器的效率并不高,所以還是盡量少用。

作者:奧辰

Github:https://github.com/ChenHuabin321

以上就是詳解MySQL數據庫之觸發器的詳細內容,更多關于MySQL 觸發器的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品日本| 国产精品99久久免费| 国产夫妻在线| 国产超碰精品| 丝袜a∨在线一区二区三区不卡| 日本电影久久久| 精品国产亚洲一区二区在线观看| 91欧美日韩| 亚洲尤物在线| 欧美日一区二区三区在线观看国产免| 国产九一精品| 久久精品青草| 亚洲日本免费电影| 久久久久久自在自线| 亚洲深夜av| 国产精品久久久久77777丨| 亚洲精品成人图区| 韩国三级一区| 亚洲18在线| 日本а中文在线天堂| 亚洲激情国产| 欧美天堂一区二区| 日韩在线观看| 香蕉久久一区| 亚洲性色av| 成人久久一区| 日本色综合中文字幕| 色婷婷精品视频| 日韩高清一级| 鲁鲁在线中文| 国产99久久| 国产极品久久久久久久久波多结野| 天堂√8在线中文| 国产探花在线精品一区二区| 麻豆一区二区三| 久久国产直播| 日本不卡视频在线观看| 久久的色偷偷| 亚洲成人精品| 日本成人在线不卡视频| 欧美成人国产| 国产欧美日韩在线观看视频| 亚洲成人一区| 精品国产乱码| 日韩av成人高清| 亚洲一区二区三区高清| 91亚洲一区| 亚洲日产国产精品| 激情偷拍久久| 麻豆一区二区三区| 午夜精品影视国产一区在线麻豆| 久久91导航| 国产精品久久国产愉拍| 男人操女人的视频在线观看欧美 | 亚洲精品成人一区| 亚洲先锋成人| аⅴ资源天堂资源库在线| 国产日韩一区二区三区在线| 好看的av在线不卡观看| 麻豆网站免费在线观看| 日本综合视频| 久久大逼视频| 亚洲欧美日韩高清在线| 六月婷婷综合| 精品视频网站| 国产精品亲子伦av一区二区三区| 亚洲美女久久| 久久午夜影视| 九一精品国产| 国产综合欧美| 亚洲va中文在线播放免费| 久久亚洲精精品中文字幕| 97精品久久| 亚洲精品极品| 一区二区电影| 亚洲性视频在线| 日韩大片在线| 日韩国产综合| 97se综合| 久久久久久夜| 国产精品一区二区美女视频免费看 | 精品国产亚洲日本| 欧美亚洲tv| 国产欧美高清| 91久久久久| 久久人人99| 久久这里只有| 国产欧美日韩一区二区三区四区 | 日韩视频一区| 国产在线|日韩| 国产成人精品一区二区三区免费 | 国产欧美日韩亚洲一区二区三区| 久久国产66| re久久精品视频| 久久亚洲道色| 国产精品成人自拍| 日韩欧美2区| 一区二区国产在线| 模特精品在线| 在线观看免费一区二区| 日韩网站中文字幕| 日韩啪啪电影网| 激情亚洲影院在线观看| 国产欧美一区二区三区精品酒店| 久久精品网址| 丰满少妇一区| 久久久国产精品入口麻豆 | 国产美女视频一区二区| 久久国产高清| 国产精品毛片| 女同性一区二区三区人了人一| 国产综合色区在线观看| 伊人久久在线| 日韩欧美一区二区三区在线视频 | 亚洲欧美日韩视频二区| 99国内精品| 99久久精品费精品国产| 国产女优一区| 日韩avvvv在线播放| 久久亚洲人体| 久久五月天小说| 中文字幕中文字幕精品| 亚洲免费成人av在线| 日韩精品久久理论片| 久久一区国产| 久久久9色精品国产一区二区三区| 亚洲免费黄色| 国产日韩中文在线中文字幕| 国产精品xxx在线观看| 97精品国产一区二区三区| 欧美肉体xxxx裸体137大胆| 99久久九九| 午夜久久av| 国产一区国产二区国产三区| 欧美日韩国产v| 三级在线观看一区二区| 国产日韩三级| 国产欧洲在线| 蜜臀av亚洲一区中文字幕| 国产一区 二区| 中文在线免费视频| 在线亚洲观看| 国产精品扒开腿做爽爽爽软件| 99久久激情| 91欧美日韩在线| 91免费精品| 亚洲www啪成人一区二区| 国产亚洲网站| 国产精品videossex| 久久久国产精品一区二区中文| 伊人精品久久| 日韩在线二区| 91午夜精品| 久久国产中文字幕| 日韩黄色av| 久久亚洲专区| 国产毛片精品| 国产精品毛片在线看| 国产黄色一区| 好吊一区二区三区| 精品一区二区三区免费看| 91精品国产91久久久久久黑人| 日韩中出av| 蜜桃tv一区二区三区| 国产精品任我爽爆在线播放| 一级欧洲+日本+国产| 久久亚洲资源中文字| 日韩制服丝袜av| 日韩精品dvd| 国产精品一区二区99| 99热精品在线观看| 精品国产欧美日韩一区二区三区| 美女精品网站| 欧美日韩精品免费观看视完整| 国产视频一区二| 91久久中文| 日韩欧美一区二区三区在线视频| 亚洲在线观看| 日韩精品麻豆| 麻豆国产欧美一区二区三区| 综合一区av| 婷婷六月综合| 91欧美国产| 国产精品视频一区二区三区| 美女精品一区| 久久久久国产| 91嫩草亚洲精品| 国产乱人伦精品一区| 亚洲深深色噜噜狠狠爱网站 | 国产精品nxnn| 免费观看不卡av| 中文在线资源| 精品免费视频| 久久精品97| 中文字幕成人| 99国产精品99久久久久久粉嫩| 日韩黄色大片网站| 国产福利一区二区精品秒拍 | 蜜桃伊人久久| 国产视频一区在线观看一区免费|