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

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

詳細解讀MySQL的觸發器trigger

瀏覽:176日期: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久久,三上悠亚国产精品一区二区三区
狂野欧美性猛交xxxx| 日本不卡一区二区| 免费高潮视频95在线观看网站| 欧洲av不卡| 久久久成人网| 一区视频在线| 精品资源在线| 99视频在线精品国自产拍免费观看| 久久a爱视频| 视频一区二区不卡| 亚洲啊v在线| 欧美亚洲专区| 亚洲一区二区三区免费在线观看 | 欧美久久久网站| 亚洲一级特黄| 激情不卡一区二区三区视频在线| 最新亚洲国产| 日韩欧美看国产| 国产精品九九| 四虎精品永久免费| 红桃视频国产精品| 婷婷综合一区| 日本精品在线播放| 日韩一区二区三区免费| 亚洲ww精品| 日韩大片在线播放| 亚洲欧美专区| 久久精品91| 国产精品啊啊啊| 亚洲免费中文| а√在线中文在线新版| 日本在线视频一区二区| 久久精品系列| 先锋亚洲精品| 国产一二在线播放| 亚洲一区二区三区久久久| 国产一区二区三区四区五区传媒| 日韩成人综合| 日本一区福利在线| 日韩欧美三区| 国产一区二区精品福利地址| 欧美日韩xxxx| 少妇精品久久久一区二区| 在线看片不卡| 久久一区二区中文字幕| 在线中文字幕播放| 精品国产成人| 欧美日韩伊人| 欧美在线观看天堂一区二区三区| 免费在线看一区| 国产亚洲福利| 国产亚洲精品久久久久婷婷瑜伽| 91九色精品| 极品日韩av| 国产在线日韩| 91九色精品| 午夜国产一区二区| 欧美日韩一区二区综合| 欧美日韩一区二区三区视频播放| 久久精品电影| 国产99久久| 国产精品91一区二区三区| 久久黄色影院| 激情欧美丁香| 亚洲一区二区三区高清| 麻豆成人在线| 伊人久久大香伊蕉在人线观看热v| 先锋亚洲精品| 蜜臀av亚洲一区中文字幕| 亚洲视频二区| 日韩成人精品一区二区三区| 国产调教精品| 麻豆国产精品一区二区三区| 国产一区二区三区四区| 日韩在线观看| 精品在线99| 国产女优一区| 男人的天堂亚洲一区| 亚洲精品第一| **爰片久久毛片| 精品国内亚洲2022精品成人 | 欧美日韩国产在线观看网站| 中文亚洲免费| 日本不卡一区二区| 国产精品红桃| 国产不卡人人| 亚洲韩日在线| 免费看的黄色欧美网站| 日韩一二三区在线观看| 国产精品成人自拍| а√在线中文在线新版| 欧洲一区二区三区精品| 国产综合激情| 亚洲另类av| 国产精品久久久免费| www.51av欧美视频| 欧美精选一区二区三区| 亚洲精品看片| 欧美国产日韩电影| 日韩国产综合| 麻豆91精品| 国产激情欧美| 136国产福利精品导航网址| 一区二区91| 欧美激情aⅴ一区二区三区| 欧美三区四区| 国产精品美女久久久| 国产情侣久久| 国产h片在线观看| 丝袜美腿亚洲一区| 国产精品尤物| 久久国产毛片| 日韩欧美美女在线观看| 日韩.com| 日韩制服丝袜先锋影音| 欧美黄色精品| 香蕉国产精品| 国产美女精品视频免费播放软件| 中文在线а√天堂| 首页国产欧美久久| 欧美黑人做爰爽爽爽| 亚洲韩日在线| 国产精品一区二区免费福利视频 | 91嫩草精品| 日韩在线免费| 亚洲精品在线a| 桃色av一区二区| 日韩中出av| 桃色一区二区| 日韩精品三区四区| 国产麻豆久久| 久久国产乱子精品免费女| 肉色欧美久久久久久久免费看 | 黄色欧美在线| 日韩中文欧美在线| 91一区二区| 日韩精品视频中文字幕| 日韩精品欧美| 国产精品啊v在线| 美女国产一区| 成人片免费看| 麻豆国产精品| 999久久久亚洲| 日本91福利区| 欧美日中文字幕| 国产激情精品一区二区三区| 99久久99久久精品国产片果冰| 欧美日韩视频免费看| 欧美日韩国产高清电影| 精品五月天堂| 日韩精品一区二区三区中文 | 亚洲视频二区| 日韩久久视频| 国产精品亚洲人成在99www| 影院欧美亚洲| 日韩成人免费| 日本v片在线高清不卡在线观看| 色婷婷久久久| 欧美a一区二区| 日本成人精品| 亚洲一区二区三区免费在线观看| 久久青青视频| 国产精品一区亚洲| 久久高清国产| 久久国产中文字幕| 精品日韩一区| 欧美日韩一区二区三区在线电影| 日韩一级不卡| 欧美成a人免费观看久久| 欧美国产中文高清| 亚洲aa在线| 国产精品99免费看| 成人福利视频| 精品国产91| 国产精品欧美大片| 日韩av成人高清| 蜜臀久久99精品久久久久宅男 | 亚洲天堂一区二区| 精品九九久久| 久久精品xxxxx| 日韩视频一二区| 丝袜美腿一区二区三区| 婷婷综合网站| 色婷婷精品视频| 成人国产精品一区二区免费麻豆| 久久不见久久见免费视频7 | 欧美一区自拍| 日韩三级一区| 亚洲乱亚洲高清| 视频一区二区中文字幕| 99国产精品自拍| 欧美日韩激情| 婷婷亚洲综合| 亚洲午夜黄色| 999国产精品永久免费视频app| 精品成人免费一区二区在线播放| 精品亚洲成人| 国产成人久久精品麻豆二区| 精品视频一区二区三区在线观看| 国产精品chinese|