創(chuàng)建 SQL 觸發(fā)器的語法如下:
CREATE TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON table_name
FOR EACH ROW
BEGIN
-- 觸發(fā)器執(zhí)行的 SQL 語句
END;
其中:
trigger_name
是觸發(fā)器的名稱,可以自定義。
BEFORE
或 AFTER
指定觸發(fā)器是在操作之前還是之后執(zhí)行。
INSERT
、UPDATE
或 DELETE
指定觸發(fā)器是在插入、更新還是刪除操作后執(zhí)行。
table_name
是觸發(fā)器所屬的表名。
FOR EACH ROW
表示每一行數(shù)據(jù)都會觸發(fā)觸發(fā)器。
BEGIN
和 END
之間是觸發(fā)器執(zhí)行的 SQL 語句。
例如,以下是一個在表 orders
上創(chuàng)建的觸發(fā)器示例:
CREATE TRIGGER update_order_count
AFTER INSERT ON orders
FOR EACH ROW
BEGIN
UPDATE order_counts
SET count = count + 1
WHERE order_id = NEW.order_id;
END;
這個觸發(fā)器在每次向 orders
表插入一行數(shù)據(jù)后,會自動更新 order_counts
表中對應(yīng)訂單的計數(shù)器。