創(chuàng)建 SQL 觸發(fā)器的語法如下:
CREATE TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE | DELETE} ON table_name
FOR EACH ROW
BEGIN
-- 觸發(fā)器執(zhí)行的邏輯
END;
其中,trigger_name
是觸發(fā)器的名稱,table_name
是觸發(fā)器所在的表名,BEFORE
或 AFTER
指定觸發(fā)器的執(zhí)行時間,INSERT
、UPDATE
或 DELETE
指定觸發(fā)器所針對的操作,FOR EACH ROW
表示每一行數(shù)據(jù)修改時都會觸發(fā)該觸發(fā)器。
在 BEGIN
和 END
之間寫入觸發(fā)器的執(zhí)行邏輯,例如插入、修改或刪除數(shù)據(jù)等操作。
以下是一個示例,創(chuàng)建一個在 orders
表上的觸發(fā)器,當(dāng)有新的訂單被插入時,更新對應(yīng)客戶的購買次數(shù):
CREATE TRIGGER update_purchase_count
AFTER INSERT ON orders
FOR EACH ROW
BEGIN
UPDATE customers
SET purchase_count = purchase_count + 1
WHERE customer_id = NEW.customer_id;
END;
在上述示例中,update_purchase_count
是觸發(fā)器的名稱,orders
是觸發(fā)器所在的表名,AFTER INSERT
表示在插入操作之后觸發(fā)觸發(fā)器。在觸發(fā)器的執(zhí)行邏輯中,使用 UPDATE
語句更新 customers
表中對應(yīng)客戶的購買次數(shù)。NEW.customer_id
是特殊的關(guān)鍵字,表示觸發(fā)器所在表插入的新數(shù)據(jù)中的 customer_id
列的值。