本文實例講述了MySQL觸發器簡介、創建觸發器及使用限制。分享給大家供大家參考,具體如下:
在遜克等地區,都構建了全面的區域性戰略布局,加強發展的系統性、市場前瞻性、產品創新能力,以專注、極致的服務理念,為客戶提供成都網站設計、做網站 網站設計制作按需網站開發,公司網站建設,企業網站建設,品牌網站建設,全網營銷推廣,成都外貿網站建設,遜克網站建設費用合理。
簡介
SQL觸發器是存儲在數據庫目錄中的一組SQL語句。每當與表相關聯的事件發生時,即會執行或觸發SQL觸發器,例如插入,更新或刪除。SQL觸發器也可以當做是一種特殊類型的存儲過程。 它是特別的,因為它不像直接像存儲過程那樣調用。 觸發器和存儲過程之間的主要區別在于,當對表執行數據修改事件時,會自動調用觸發器,而存儲過程必須要明確地調用。
完事我們來看下SQL觸發器的優點:
再來看下它的缺點:
既然觸發器都是一種特殊的存儲過程了,那么我們在它們中間該如何取舍呢?在下只是建議下,如果我們無法使用存儲過程完成工作時,可以考慮使用下SQL觸發器。
創建觸發器
在MySQL中,觸發器是一組SQL語句,當對相關聯的表上的數據進行更改時,會自動調用該語句。 觸發器可以被定義為在insert,update或delete語句更改數據之前或之后調用。在MySQL5.7.2版本之前,每個表最多可以定義六個觸發器。我們來看下它們的簡單介紹:
但是,從MySQL 5.7.2+版本開始,可以為相同的觸發事件和動作時間定義多個觸發器。當使用不使用INSERT,DELETE或UPDATE語句更改表中數據的語句時,不會調用與表關聯的觸發器。 例如,truncate語句刪除表的所有數據,但不調用與該表相關聯的觸發器。但是,有些語句使用了后臺的INSERT語句,如REPLACE語句或LOAD DATA語句。如果使用這些語句,則調用與表關聯的相應觸發器。所以我們必須要為與表相關聯的每個觸發器使用唯一的名稱。可以為不同的表定義相同的觸發器名稱,這是一個很好的做法。我們來看下定義觸發器的語法結構:
(BEFORE | AFTER)_tableName_(INSERT| UPDATE | DELETE)
例如,before_order_update是更新orders表中的行數據之前調用的觸發器。我們再來看一種定義方式:
tablename_(BEFORE | AFTER)_(INSERT| UPDATE | DELETE)
例如,order_before_update與上述before_order_update觸發器相同。
mysql會在在數據目錄中存儲觸發器,例如:/data/luyaran/,并使用名為tablename.TRG和triggername.TRN的文件:
所以我們可以通過將觸發器文件復制到備份文件夾來備份mysql觸發器,還可以使用mysqldump工具備份觸發器。
使用限制
mysql觸發器覆蓋標準SQL中定義的所有功能,但是,在應用程序中使用它們也會有一些限制:
好啦,本次記錄就到這里了。
更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》、《MySQL數據庫鎖相關技巧匯總》及《MySQL常用函數大匯總》
希望本文所述對大家MySQL數據庫計有所幫助。
網站題目:mysql觸發器簡介、創建觸發器及使用限制分析
當前鏈接:http://vcdvsql.cn/article42/pegghc.html
成都網站建設公司_創新互聯,為您提供網站改版、手機網站建設、網站維護、企業網站制作、網站收錄、電子商務
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯