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