久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      一起聊聊MYSQL數(shù)據(jù)庫觸發(fā)器

      本篇文章給大家?guī)砹岁P(guān)于mysql的相關(guān)知識,其中主要介紹了關(guān)于觸發(fā)器的相關(guān)問題,包括了什么是觸發(fā)器、怎么在數(shù)據(jù)庫中建立觸發(fā)器、觸發(fā)器能否代替外鍵,下面一起來看一下,希望對大家有幫助。

      一起聊聊MYSQL數(shù)據(jù)庫觸發(fā)器

      推薦學(xué)習(xí):mysql視頻教程

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

      什么是觸發(fā)器?

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

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

      如何在數(shù)據(jù)庫中建立觸發(fā)器

      建立觸發(fā)器實例(關(guān)鍵詞:trigger)

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

      先建立user表

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

      一起聊聊MYSQL數(shù)據(jù)庫觸發(fā)器
      建立觸發(fā)器

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

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

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

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

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

      一起聊聊MYSQL數(shù)據(jù)庫觸發(fā)器
      建立觸發(fā)器

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

      一起聊聊MYSQL數(shù)據(jù)庫觸發(fā)器
      向表中添加兩條數(shù)據(jù)
      一起聊聊MYSQL數(shù)據(jù)庫觸發(fā)器

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

      delete from user WHERE name='張三'

      一起聊聊MYSQL數(shù)據(jù)庫觸發(fā)器
      一起聊聊MYSQL數(shù)據(jù)庫觸發(fā)器

      觸發(fā)器能否完全代替外鍵

      • 上面的例二如果用外鍵也可以實現(xiàn)同樣的效果,那么是不是說明外鍵可以做到的,觸發(fā)器都可以做到,外鍵做不到的觸發(fā)器也可以做到呢?
      • 與外鍵相比,觸發(fā)器的靈活性更高功能
      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號