CREATE TRIGGER语法: CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW BEGIN -- 触发器执行的语句 END;
MySQL支持BEFORE和AFTER两种触发器时间:
- BEFORE: 在执行INSERT、UPDATE或DELETE语句之前执行触发器。
- AFTER: 在执行INSERT、UPDATE或DELETE语句之后执行触发器。
MySQL支持以下触发器事件:
- INSERT: 当插入一行时触发。
- UPDATE: 当更新一行时触发。
- DELETE: 当删除一行时触发。
MySQL支持在表层级别上创建触发器(即FOR EACH ROW)。也就是说,每插入、更新或删除一行,都会执行一次触发器。
以下是一个简单的例子,当大家在employees表上执行INSERT操作时,会向logs表中插入一条记录:
CREATE TRIGGER insert_employee_trigger AFTER INSERT ON employees FOR EACH ROW BEGIN INSERT INTO logs (action) VALUES ('New employee added'); END;
在以上代码中,大家在employees表上创建了一个触发器(insert_employee_trigger),当有人向employees表中插入一行新数据时,触发器将在之后执行。此时,大家在logs表中添加了一条写入操作,以记录新员工的添加操作。