站長資訊網
最全最豐富的資訊網站

一起聊聊MYSQL數據庫觸發器

本篇文章給大家帶來了關于mysql的相關知識,其中主要介紹了關于觸發器的相關問題,包括了什么是觸發器、怎么在數據庫中建立觸發器、觸發器能否代替外鍵,下面一起來看一下,希望對大家有幫助。

一起聊聊MYSQL數據庫觸發器

推薦學習:mysql視頻教程

先了解一下觸發器,再來討論是否能完全代替外鍵

什么是觸發器?

概念:觸發器(trigger)是SQL server 提供給程序員和數據分析員來保證數據完整性的一種方法,它是與表事件相關的特殊的存儲過程,它的執行不是由程序調用,也不是手工啟動,而是由事件來觸發,比如當對一個表進行操作( insert,delete, update)時就會激活它執行。觸發器經常用于加強數據的完整性約束和業務規則等。 觸發器可以從 DBA_TRIGGERS ,USER_TRIGGERS 數據字典中查到。SQL3的觸發器是一個能由系統自動執行對數據庫修改的語句。

  • 通俗的來講,觸發器就是一個觸發裝置,裝置里面存有一段操作。這個裝置有觸發條件,達到某個條件就會觸發這個裝置,觸發裝置就會執行存儲的一段操作。

如何在數據庫中建立觸發器

建立觸發器實例(關鍵詞:trigger)

例一:建立一個用戶表(用戶ID,用戶姓名),建立一個觸發器(當用戶表中插入數據時,自動生成一個全局唯一的ID)

先建立user表

create table user( id int PRIMARY KEY, name varchar(20) );

一起聊聊MYSQL數據庫觸發器
建立觸發器

-- 建立觸發器名為tt create TRIGGER tt -- 觸發條件,向user表中插入數據時啟動觸發器 BEFORE insert on user -- 檢查表中每一行,對新插入的數據進行操作 for EACH ROW -- 執行操作 BEGIN  set new.id=UUID(); END

剛剛建立的觸發器(查看當前數據庫下全部觸發器的代碼show triggers)
一起聊聊MYSQL數據庫觸發器
效果:向表中插入三個用戶名,自動生成三個ID

insert user(name) VALUE('張三'),('李四'),('王五')

一起聊聊MYSQL數據庫觸發器
例二:再建立一個訂單表DD(訂單ID,商品名稱,用戶ID),建立一個觸發器tq1(當刪除一個用戶時,該用戶的訂單也將刪除)
建表

create table DD( ddid int PRIMARY KEY, ddname VARCHAR(20), userid VARCHAR(50) )

一起聊聊MYSQL數據庫觸發器
建立觸發器

delimiter $ -- 建立觸發器名為tq create TRIGGER tq1 -- 觸發條件,再dd表刪除數據之后啟動觸發器 AFTER DELETE on user -- 檢查表中每一行,對新插入的數據進行操作 for EACH ROW -- 執行操作 BEGIN   DELETE FROM dd WHERE old.id=userid; END $  delimiter ;

一起聊聊MYSQL數據庫觸發器
向表中添加兩條數據
一起聊聊MYSQL數據庫觸發器

效果:刪除user表中的用戶,dd表中的記錄也跟隨刪除
刪除張三

delete from user WHERE name='張三'

一起聊聊MYSQL數據庫觸發器
一起聊聊MYSQL數據庫觸發器

觸發器能否完全代替外鍵

  • 上面的例二如果用外鍵也可以實現同樣的效果,那么是不是說明外鍵可以做到的,觸發器都可以做到,外鍵做不到的觸發器也可以做到呢?
  • 與外鍵相比,觸發器的靈活性更高功能
贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
在线精品亚洲一区二区| 久久久久久国产精品三级| 亚洲日韩精品射精日| 精品国产福利在线观看91啪| 国产成人精品日本亚洲11| 99久久er热在这里只有精品99| 青草青草久热精品视频在线网站 | 国产精品极品美女自在线| 亚洲国产精品ⅴa在线观看| 国产精品bbwbbwbbw| 亚欧人成精品免费观看| 久久精品黄AA片一区二区三区| 久久99精品一区二区三区| 青青青青久久精品国产| 国内精品久久久久影院免费| 中文字幕九七精品乱码| 老司机成人精品视频lsj| 国产精品无码素人福利不卡| 亚洲av无码成人精品区在线播放| 日韩毛片人妻久久蜜桃传媒| 亚洲日韩中文字幕在线播放| 手机看片久久高清国产日韩| 国产a久久精品一区二区三区| 国产精品嫩草影院免费| 精品久久综合一区二区| 精品国产自在久久| 国产精品成人va在线观看入口| 国产精品无码一区二区三区在 | 最新69国产成人精品免费视频动漫| 91情侣在线精品国产免费| 亚洲精品成a人在线观看夫| 亚洲综合一区国产精品| 国产精品久久久久久亚洲影视| 国产精品午夜无码AV天美传媒| 99视频在线精品免费观看6| 日本精品久久久久护士| 国产成人精品三级麻豆| 亚洲日韩国产精品乱| 日韩色视频一区二区三区亚洲| 青青热久久国产久精品 | 国内揄拍国内精品视频|