日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

原文地址:https://dwz.cn/yCYkG78b

作者:best.lei

觸發(fā)器和存儲過程一樣,都是嵌入到MySQL的一段程序。不同的是,執(zhí)行存儲過程需要使用CALL語句來調(diào)用,而觸發(fā)器是由事件觸發(fā)某些操作,這些事件包括INSERT、UPDATE、DELETE。一旦定義了觸發(fā)程序,當(dāng)數(shù)據(jù)庫執(zhí)行這些語句時(shí),就會激發(fā)觸發(fā)器執(zhí)行相應(yīng)的操作。本片博客將通過實(shí)例介紹觸發(fā)器的定義、創(chuàng)建、查看以及刪除。

  • 創(chuàng)建觸發(fā)器

觸發(fā)器可以查詢其他表,而且可以包含復(fù)雜的SQL語句,用于滿足復(fù)雜的業(yè)務(wù)規(guī)則或要求。但在觸發(fā)器中不能對被觸發(fā)表進(jìn)行操作。如下是觸發(fā)器的創(chuàng)建語法:

CREATE TRIGGER trigger_name trigger_time trigger_event ON tb_name FOR EACH ROW trigger_statement

其中trigger_name表示觸發(fā)器名稱;trigger_time表示觸發(fā)器時(shí)機(jī),可以指定為BEFORE或AFTER;trigger_event標(biāo)識觸發(fā)事件,包括INSERT、UPDATE和DELETE;tb_name標(biāo)識在哪張表上建立觸發(fā)器;trigger_statement是觸發(fā)程序體。觸發(fā)程序可以使用BEGIN和END作為開始和結(jié)束,中間包含多條語句。

我們在以往的學(xué)生成績表上創(chuàng)建一個(gè)觸發(fā)器,該觸發(fā)器記錄最新插入的數(shù)據(jù)信息,代碼執(zhí)行如下:

創(chuàng)建觸發(fā)器:CREATE TRIGGER p_in AFTER INSERT ON tb_score
 FOR EACH ROW BEGIN
 SET @info=CONCAT('studentID=', NEW.sID, ', classID=', NEW.cID, ', grade=', NEW.grade);
 END //
向tb_score表中插入值:INSERT INTO tb_score VALUE(3,1,88);
查看變量@info的值:SELECT @info;
MySQL 觸發(fā)器

 

  • 查看觸發(fā)器

查看觸發(fā)器是指查看數(shù)據(jù)庫中已經(jīng)存在的觸發(fā)器的定義、狀態(tài)和語法信息等。本節(jié)將介紹兩種查看觸發(fā)器的方法,分別是SHOW TRIGGERS和在triggers表中查看觸發(fā)器信息。

1.SHOW TRIGGERS語句查看觸發(fā)器信息,語法格式為:SHOW TRIGGERSG;

MySQL 觸發(fā)器

 

2..當(dāng)觸發(fā)器較少時(shí),可以通過SHOW TRIGGERS查看。如果觸發(fā)器很多,且需要查看特定觸發(fā)器的信息,則通過在information_schema數(shù)據(jù)庫中的triggers表中查找更方便。具體語法格式如下:

SELECT * FROM information_schema.trigger WHERE condition; 不指定condition則默認(rèn)查詢所有的觸發(fā)器。
如查看指定名稱的觸發(fā)器的詳細(xì)信息:SELECT * FROM information_schema.triggers WHERE trigger_name='p_in'G;
MySQL 觸發(fā)器

 

如上執(zhí)行結(jié)果顯示:TRIGGER_SCHEMA表示觸發(fā)器所在的數(shù)據(jù)庫;TRIGGER_NAME表示觸發(fā)器的名稱;EVENT_OBJECT_TABLE表示在哪個(gè)數(shù)據(jù)表上觸發(fā);ACTION_STATEMENT表示觸發(fā)器觸發(fā)時(shí)執(zhí)行的具體操作;ACTION_ORIENTATION表示在每條記錄上都觸發(fā);ACTION_TIMING表示觸發(fā)的時(shí)刻是AFTER。

  • 刪除觸發(fā)器

使用DROP TRIGGER語句刪除MySQL中已經(jīng)存在的觸發(fā)器,基本語句格式為:DROP TRIGGER [schema_name.]trigger_name;

如想刪除創(chuàng)建的p_in觸發(fā)器,只需執(zhí)行:DROP TRIGGER test.p_in;

MySQL 觸發(fā)器

 

  • 注意事項(xiàng)

在使用觸發(fā)器時(shí),對于一張表的相同事件只能創(chuàng)建一個(gè)觸發(fā)器。如對表tb_score的BEFORE INSERT事件只能創(chuàng)建一個(gè)觸發(fā)器。及時(shí)刪除不需要的觸發(fā)器。

分享到:
標(biāo)簽:觸發(fā)器 MySQL
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定