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

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

詳細解讀MySQL的觸發器trigger

瀏覽:180日期:2023-05-08 10:17:42

什么是觸發器

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

創建觸發器

觸發器是個特殊的存儲過程,不同的是,執行存儲過程要使用CALL語句來調用,而觸發器的執行不需要使用CALL語句調用,也不需要手工啟動,只要當一個預定義的事件發生的時候,就會被MySQL自動調用。比如對student表進行操作(INSERT、DELETE或UPDATE)時就會激活它執行。

觸發器可以查詢其他表,而且可以包含復雜的SQL語句。它們主要用于滿足復雜的業務規則或要求。可以創建只有一條語句的觸發器,不過一般都是有多個執行語句的觸發器用得比較多,即使單條語句的觸發器,也可以使用多條語句的觸發器的寫法來寫,看下有多個執行語句的觸發器的基本寫法:

CREATE TRIGGER trigger_name trigger_time trigger_eventON tbl_name FOR EACH ROW trigger_stmt

解釋一下:

1、trigger_name標識觸發器名稱,用戶自行指定

2、trigger_time標識觸發時機,可以指定為before或after

3、trigger_event標識觸發事件,包括INSERT、UPDATE和DELETE

4、tbl_name標識建立觸發器的表名,即在哪張表上建立觸發器

5、trigger_stmt是觸發器程序體,觸發器程序可以使用begin和end作為開始和結束,中間包含多條語句

觸發器程序可以使用begin和end作為開始和結束,中間包含多條語句。舉個例子,還是以前的學生表:

create table student(    studentId    int primary key    auto_increment    not null,    studentNamevarchar(10)   not null,    studentAgeint,    studentPhone    varchar(15))

給學生表的studentName、studentAge、studentPhone三個字段都創建一個觸發器表:

create table triggerstudentname(    t_studentName VARCHAR(10));create table triggerstudentAge(    t_studentAge int);create table triggerstudentPhone(    t_studentPhone VARCHAR(15));

創建一個觸發器,每次插入一條數據之后分別往三張表插字段:

CREATE TRIGGER trigger_student AFTER INSERT ON studentFOR EACH ROW BEGIN    INSERT INTO triggerstudentname values(NEW.studentName);    INSERT INTO triggerstudentAge values(NEW.studentAge);    INSERT INTO triggerstudentPhone values(NEW.studentPhone);END

插入三條數據:

insert into student values(null,"Jack", "11", "55555555");insert into student values(null,"Dicky", "14", "66666666");insert into student values(null,"Coco", "19", "77777777");commit;

看一下三張表的情況:

沒什么問題,執行結果顯示,在向student表插入數據的同時,triggerstudentname、triggerstudentAge和triggerstudentPhone三張表里面的數據都發生了變化,INSERT動作觸發了觸發器。

查看觸發器

查看觸發器是指查看數據庫中已存在的觸發器的定義、狀態和語法信息等。可以通過命令來查看已經創建的觸發器,有兩種方式可以查看觸發器,一一講解。

1、SHOW TRIGGERS語句查看觸發器

通過SHOW TRIGGERS查看觸發器的語句如下:

SHOW TRIGGERS;

用這個命令來查看一下觸發器:

有一部分沒截取完整,解釋一下主要部分的含義:

(1)Trigger表示觸發器的名稱,這里有兩個觸發器分別是tri_student和trigger_student

(2)Event表示激活觸發器的事件,這里的兩個觸發事件為插入操作INSERT

(3)Table表示激活觸發器的操作對象表,這里都為student表

(4)Statement表示激活觸發器之后執行的語句

(5)Timing表示觸發器觸發的時間,分別為插入操作之前(BEFORE)和插入操作之后(AFTER)

2、在triggers表中查看觸發器信息

SHOW TRIGGERS語句查看當前創建的所有觸發器信息,這在觸發器較少的情況下,使用該語句會很方便,如果要查看特定的觸發器信息,可以直接從infomation_schema數據庫中的triggers表中查找,通過SELECT命令查看,基本語法為:

SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE condition;

比如:

SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME = "trigger_student";

可以自己查看一下命令運行的效果

刪除觸發器

使用DROP TRIGGER語句可以刪除MySQL中已經定義的觸發器,刪除觸發器的基本語法為:

DROP TRIGGER [schema_name.]trigger_name;

schema_name表示數據庫名稱,是可選的,如果省略了schema_name,將從當前數據庫中刪除觸發器,trigger_name是要刪除的觸發器的名稱,比如:

DROP TRIGGER school.tri_student

觸發器tri_student刪除成功

使用觸發器的注意點

在使用觸發器的時候需要注意:對于相同的表,相同的事件只能創建一個觸發器

比如對表student創建了一個BEFORE INSERT觸發器,那么如果對表student再次創建一個BEFORE INSERT觸發器,MySQL將會報錯,此時,只可以在表student上創建AFTER INSERT或者BEFORE UPDATE類型的觸發器。靈活地運用觸發器將為操作省去很多麻煩。

到此這篇關于詳細解讀MySQL的觸發器trigger的文章就介紹到這了,更多相關MySQL觸發器trigger內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: MySQL
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩国产在线不卡视频| 夜久久久久久| 91欧美极品| 国产欧美一区二区色老头| 国产精品探花在线观看| 久久超碰99| 丝袜美腿诱惑一区二区三区 | 亚洲开心激情| 亚洲精品系列| 精品国产精品久久一区免费式 | 欧美日本久久| 91欧美日韩| 亚洲精品99| av一区在线| 日韩va亚洲va欧美va久久| 国产精品日韩精品在线播放| 久久久久久色 | 国产精品嫩模av在线| 成人国产精品久久| 91精品二区| 欧美在线观看天堂一区二区三区| 精品国产18久久久久久二百| 999久久久亚洲| 日本在线视频一区二区| 久久精品五月| 在线视频日韩| 国产精品久久久亚洲一区| 激情国产在线| 国产精品日韩| 久久只有精品| 久热精品在线| 精品国产a一区二区三区v免费| 合欧美一区二区三区| 国产伦精品一区二区三区在线播放| 日本免费一区二区三区四区| 蜜臀久久99精品久久久久宅男| 精品国产中文字幕第一页| 婷婷综合激情| 欧美韩一区二区| 亚洲中字黄色| 亚洲黄色免费看| 日韩欧美中文字幕电影| 欧美日韩尤物久久| 日韩精品成人| 欧美二区视频| 国产精品亚洲欧美| 亚洲精华国产欧美| 国内一区二区三区| 日韩高清电影免费| 在线国产一区| 成人在线免费观看网站| 亚洲精品裸体| 五月天综合网站| 国产一区二区久久久久| 日韩精品亚洲专区| 亚洲欧美一区在线| 久久超碰99| 日韩欧美另类中文字幕| 99精品美女| 免费视频一区二区三区在线观看| 免费久久99精品国产| 久久精品国产亚洲夜色av网站 | 亚洲成人二区| 久久精品国产999大香线蕉| 亚洲日产国产精品| 国产亚洲一区在线| 久久久国产亚洲精品| 麻豆国产精品视频| 日本欧美久久久久免费播放网| 久久电影一区| se01亚洲视频| 成午夜精品一区二区三区软件| 国产伦精品一区二区三区千人斩| 亚洲影院天堂中文av色| 欧美精品激情| 午夜精品一区二区三区国产| 日韩毛片视频| 视频在线不卡免费观看| 欧美激情视频一区二区三区免费 | 欧美一级精品| 久久久久91| 日韩不卡免费高清视频| 精品国产一区二| 精品一区二区三区中文字幕 | 日产欧产美韩系列久久99| 99国产精品久久久久久久成人热| 亲子伦视频一区二区三区| 91视频一区| 亚洲天堂资源| 国产高清不卡| 欧美三级网址| 久久国产日韩| 国产高清一区| 欧美专区18| 亚洲在线网站| 日本在线观看不卡视频| 国产欧美三级| 国产乱码精品一区二区三区四区| 久久激五月天综合精品| 国产乱码精品一区二区亚洲| 国产黄色精品| 亚洲人成在线网站| 五月天激情综合网| 日本欧洲一区二区| 免费高清在线一区| 视频一区日韩精品| 国产欧美日韩影院| 免费在线欧美黄色| 精品日韩在线| 91精品精品| 亚洲一区日韩| 四虎精品永久免费| 国产极品嫩模在线观看91精品| 久久午夜影院| 免费污视频在线一区| 红桃视频国产一区| 亚洲精品女人| 国产精品99久久免费| 天堂√8在线中文| 伊人久久高清| 亚洲男女自偷自拍| 国产欧美日韩| 天堂网av成人| 婷婷精品在线| 国产第一亚洲| 99xxxx成人网| 国产精品高潮呻吟久久久久| 成人在线黄色| 国产色综合网| 国产精品嫩模av在线| 亚洲精品福利电影| 亚洲视频电影在线| 麻豆91精品视频| 亚洲国产不卡| 日本午夜精品久久久| 国产伊人久久| 在线综合欧美| 久久超碰99| 亚洲激情社区| 你懂的网址国产 欧美| 五月天激情综合网| 国产精品日本一区二区三区在线 | 日韩欧美四区| 日韩欧美精品| 日韩国产在线一| 日韩欧美一区二区三区免费看| 免费成人在线影院| 91亚洲国产高清| 日本在线不卡视频一二三区| 日韩免费福利视频| 国产欧美一级| av不卡在线看| 中文在线免费视频| 日本亚洲不卡| 亚洲福利精品| 美女视频网站久久| 日韩制服丝袜av| 日韩av首页| 久久久久九九精品影院| 亚洲午夜免费| 色综合www| 久久超碰99| 日日摸夜夜添夜夜添国产精品| 日韩欧美看国产| 美女视频黄免费的久久| 一区二区日韩免费看| 久久久夜夜夜| 欧美91在线|欧美| 日韩国产欧美三级| 亚洲在线观看| 亚洲一级特黄| 成人午夜网址| 国产探花一区| 亚洲免费观看高清完整版在线观| 欧美成人综合| 国产精品二区不卡| 欧美日韩va| 免费一级片91| 美女毛片一区二区三区四区 | se01亚洲视频 | 国产精品久久久久久久免费软件 | 福利一区在线| 欧美日韩一视频区二区| 在线亚洲一区| 午夜国产精品视频免费体验区| av中文资源在线资源免费观看| 国产美女视频一区二区| 综合色一区二区| 影音先锋国产精品| 黄色日韩在线| 香蕉精品久久| 韩日一区二区三区| 日韩精品欧美| 91精品一区二区三区综合在线爱| 精品亚洲二区| 在线手机中文字幕| 精品捆绑调教一区二区三区| 麻豆传媒一区二区三区| 久久成人高清| 里番精品3d一二三区|