要创建一个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
表中插入一条记录,记录了触发事件的类型、时间、表名和插入的行数据。
请注意,触发器只能在具有适当权限的用户下创建。