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) );
建立觸發器
-- 建立触发器名为tt create TRIGGER tt -- 触发条件,向user表中插入数据时启动触发器 BEFORE insert on user -- 检查表中每一行,对新插入的数据进行操作 for EACH ROW -- 执行操作 BEGIN set new.id=UUID(); END
剛剛建立的觸發器(查看目前資料庫下全部觸發器的程式碼show triggers)
效果:在表中插入三個使用者名稱,自動產生三個ID
insert user(name) VALUE('张三'),('李四'),('王五')
#例二:再建立一個訂單表DD(訂單ID,商品名稱,使用者ID),建立一個觸發器tq1(當刪除一個使用者時,該使用者的訂單也會被刪除) 建表
create table DD( ddid int PRIMARY KEY, ddname VARCHAR(20), userid VARCHAR(50) )
#建立觸發器
delimiter $ -- 建立触发器名为tq create TRIGGER tq1 -- 触发条件,再dd表删除数据之后启动触发器 AFTER DELETE on user -- 检查表中每一行,对新插入的数据进行操作 for EACH ROW -- 执行操作 BEGIN DELETE FROM dd WHERE old.id=userid; END $ delimiter ;
delete from user WHERE name='张三'

- #上面的範例二如果用外鍵也可以實現同樣的效果,那麼是不是說明外鍵可以做到的,觸發器都可以做到,外鍵做不到的觸發器也可以做到呢?
- 與外鍵相比,觸發器的靈活性更高功能更多,可以執行更多功能在一定程度上可以代替外鍵,實現外鍵的功能。
- 可以利用觸發器來實現強制引用完整性,確保在多個表中新增、更新或刪除行的時候,保持這些表之間所定義的關係。定義主鍵和外鍵約束是保證引用完整性的最佳方式。在資料庫中使用關係圖,可以透過建立表格之間的關係,自動建立外鍵約束。
以上是MySQL資料庫觸發器怎麼建立的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

如何修復 MySQL 8.4 上的 mysql_native_password 未載入錯誤
