本頁使用了標題或全文手工轉換

觸發程式 (數據庫)

維基百科,自由的百科全書
跳到: 導覽搜尋

觸發程序英語:trigger)是在數據庫中,在執行對數據有異動的動作時,先行攔截並處理的一種數據庫物件,它大部份會設在數據表中,作為強制執行特定動作的程式,因此又稱為數據操縱語言(DML)觸發程式。

觸發程式的好處有:

  • 可在寫入數據表前,強制檢驗或轉換數據。
  • 觸發程序發生錯誤時,異動的結果會被撤銷。
  • 部份數據庫管理系統可以針對數據定義語言(DDL)使用觸發程序,稱為DDL觸發程式。
  • 可依照特定的情況,替換異動的指令 (INSTEAD OF)。

種類[編輯]

DML 觸發程序可以分為數種:

  • BEFORE: 在異動發生前執行。
  • AFTER: 在異動發生後執行。
  • INSTEAD OF: 替換異動的指令。

DDL 觸發程序範圍就相當大,對數據庫物件的異動大多都可捕捉,視數據庫管理系統而定。

語法[編輯]

SQL Server 的 DML 觸發程序可利用下列語法建立[1]

DELIMITER |
CREATE TRIGGER `<databaseName>`.`<triggerName>`
< [ BEFORE | AFTER ] > < [ INSERT | UPDATE | DELETE ] >
ON [dbo]<tableName> //dbo(所有者)
FOR EACH ROW
BEGIN
...

END |

參考資料[編輯]

數據庫管理系統(DBMS) 檢視 · 討論 · 編輯

概念
數據庫 · 數據模型 · 數據庫儲存結構英語Database storage structures · 關係 (數據庫) · 關係模型 · 分散式數據庫 · ACID ( 原子性英語Atomicity (database systems) · 一致性· 隔離性· 永續性英語Durability (database systems) ) · Null值
關係模型 · 數據庫規範化 · 數據庫完整性 · 實體完整性 · 參照完整性英語Referential integrity · 關聯式資料庫管理系統 
主鍵 · 外來鍵 · 代理鍵 · 超鍵 · 候選鍵 

數據庫元件
觸發程式 · 視圖 · 數據庫表 · 指標 (數據庫) · 事務記錄檔英語Transaction log · 數據庫事務 · 並行控制 · 樂觀鎖 · 悲觀鎖 · 數據庫索引 
儲存程式 · 數據庫分割英語Partition (database)

SQL
分類: 數據查詢語言(DQL) - 數據定義語言(DDL) - 數據操縱語言(DML) - 數據控制語言(DCL)
指令:SELECT · INSERT · UPDATE · MERGE · DELETE · JOIN · UNION英語Union (SQL) · CREATE · DROP · Begin work · COMMIT · ROLLBACK · TRUNCATE · ALTER
安全: SQL資料隱碼攻擊 · 參數化查詢

數據庫管理系統的實現

實現類型
關聯式資料庫 · 檔案型數據庫 · Deductive · 維度化數據庫 · 階層式 · 圖形數據庫 · NoSQL· 物件數據庫 · 物件關聯式資料庫 · Temporal · XML數據庫

數據庫產品
物件型對比) · 關係型對比

數據庫元件
數據查詢語言 · 查詢最佳化器 · 查詢計劃 · 嵌入式SQL · ODBC · JDBC · OLE DB