sql 觸發(fā)器是一種自動(dòng)在特定事件發(fā)生時(shí)執(zhí)行操作的數(shù)據(jù)庫(kù)對(duì)象。創(chuàng)建觸發(fā)器包括以下步驟:選擇觸發(fā)器類型:before、after 或 instead of指定觸發(fā)事件:insert、update 或 delete編寫(xiě)觸發(fā)器代碼,指定執(zhí)行的操作使用 create trigger 語(yǔ)句創(chuàng)建觸發(fā)器
如何創(chuàng)建 SQL 觸發(fā)器
SQL 觸發(fā)器是一種數(shù)據(jù)庫(kù)對(duì)象,在特定事件發(fā)生時(shí)自動(dòng)觸發(fā)一組操作。例如,在向表中插入新行時(shí)執(zhí)行操作。
創(chuàng)建觸發(fā)器
要?jiǎng)?chuàng)建觸發(fā)器,可以使用以下步驟:
選擇觸發(fā)器類型:SQL 支持以下類型的觸發(fā)器:
BEFORE:在執(zhí)行事件之前觸發(fā)
AFTER:在執(zhí)行事件之后觸發(fā)
INSTEAD OF:替代觸發(fā)事件
指定觸發(fā)事件:觸發(fā)器可以對(duì)以下事件進(jìn)行響應(yīng):
INSERT:向表中插入新行
UPDATE:更新表中現(xiàn)有行
DELETE:從表中刪除行
編寫(xiě)觸發(fā)器代碼:觸發(fā)器代碼指定要執(zhí)行的操作。這可以包括插入新行、更新現(xiàn)有行或向其他表寫(xiě)操作。
創(chuàng)建觸發(fā)器:使用 CREATE TRIGGER 語(yǔ)句創(chuàng)建觸發(fā)器。語(yǔ)法如下:
CREATE TRIGGER [觸發(fā)器名稱] ON [表名稱] FOR [觸發(fā)事件] AS BEGIN [觸發(fā)器代碼] END;
登錄后復(fù)制
示例
以下示例創(chuàng)建一個(gè) BEFORE INSERT 觸發(fā)器,在向 “客戶” 表中插入新行之前插入當(dāng)前時(shí)間戳:
CREATE TRIGGER before_customer_insert ON customers FOR INSERT AS BEGIN UPDATE customers SET created_at = CURRENT_TIMESTAMP WHERE id = NEW.id; END;
登錄后復(fù)制
注意:
觸發(fā)器名稱必須唯一。
表名稱必須是觸發(fā)器將作用到的表。
觸發(fā)事件指定觸發(fā)器的觸發(fā)條件。
BEGIN 和 END 語(yǔ)句標(biāo)記觸發(fā)器代碼塊的開(kāi)始和結(jié)束。
NEW 和 OLD 表達(dá)式分別引用新插入或更新的行和舊的行。
觸發(fā)器代碼可以包含 SQL 語(yǔ)句、流程控制結(jié)構(gòu)和函數(shù)。