SQLite觸發(fā)器是一種事件驅(qū)動(dòng)的動(dòng)作或數(shù)據(jù)庫(kù)回調(diào)函數(shù),它在對(duì)指定的表執(zhí)行INSERT,UPDATE和DELETE語(yǔ)句時(shí)自動(dòng)調(diào)用。
觸發(fā)器的主要任務(wù)就是執(zhí)行業(yè)務(wù)規(guī)則,驗(yàn)證輸入數(shù)據(jù)和保持審計(jì)跟蹤。
觸發(fā)器的使用:
使用觸發(fā)器的優(yōu)點(diǎn):
觸發(fā)器使應(yīng)用程序開(kāi)發(fā)更快。 因?yàn)閿?shù)據(jù)庫(kù)存儲(chǔ)觸發(fā)器,所以不必將觸發(fā)器操作編碼到每個(gè)數(shù)據(jù)庫(kù)應(yīng)用程序中。
定義觸發(fā)器一次,可以將其重用于許多使用數(shù)據(jù)庫(kù)的應(yīng)用程序。
維護(hù)方便。 如果業(yè)務(wù)策略發(fā)生變化,則只需更改相應(yīng)的觸發(fā)程序,而不是每個(gè)應(yīng)用程序。
如何創(chuàng)建觸發(fā)器?
CREATE TRIGGER語(yǔ)句用于在SQLite中創(chuàng)建一個(gè)新的觸發(fā)器。 此語(yǔ)句也用于向數(shù)據(jù)庫(kù)模式添加觸發(fā)器。
語(yǔ)法
CREATE TRIGGER trigger_name [BEFORE|AFTER] event_name
ON table_name
BEGIN
-- Trigger logic goes here....
END;
這里,trigger_name是要?jiǎng)?chuàng)建的觸發(fā)器的名稱。
event_name可以是INSERT,DELETE和UPDATE數(shù)據(jù)庫(kù)操作。
table_name是要進(jìn)行操作的表。