要創建一個MySQL觸發器,你可以使用以下語法:
CREATE TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON table_name
FOR EACH ROW
BEGIN
-- trigger body
END;
其中,trigger_name
是你為觸發器指定的名稱,{BEFORE | AFTER}
指定觸發器在觸發事件之前或之后執行,{INSERT | UPDATE | DELETE}
指定觸發器與哪些操作相關,table_name
是觸發器所屬的表名。
觸發器的主體部分包含在BEGIN
和END;
之間,你可以在其中編寫你想要執行的邏輯。
以下是一個創建觸發器的例子:
CREATE TRIGGER trigger_name
AFTER INSERT
ON employees
FOR EACH ROW
BEGIN
INSERT INTO audit_log (event_type, event_time, table_name, row_data)
VALUES ('INSERT', NOW(), 'employees', CONCAT('Employee ID: ', NEW.id, ', Name: ', NEW.name));
END;
在該示例中,當向employees
表中插入新行時,觸發器會在插入操作之后執行。它將在audit_log
表中插入一條記錄,記錄了觸發事件的類型、時間、表名和插入的行數據。
請注意,觸發器只能在具有適當權限的用戶下創建。