MySQL的触发器是一种特殊的存储过程,它可以在满足某种条件的情况下自动执行指定的SQL语句。触发器可以在插入、更新或删除表中的行时自动执行,它们可以在表中的数据发生变化时执行一些特定的操作,从而实现一些自动化的功能。
CREATE TRIGGER语法
MySQL的CREATE TRIGGER语句用于创建触发器,它的语法格式如下:
CREATE [DEFINER = { user | CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW [trigger_order] trigger_body
其中:
- DEFINER用于指定触发器的定义者,默认为当前用户;
- trigger_name是触发器的名称;
- trigger_time指定触发器的时机,可以是BEFORE或AFTER;
- trigger_event指定触发器的事件,可以是INSERT、UPDATE或DELETE;
- tbl_name指定触发器所属的表;
- trigger_order指定触发器的执行顺序,可以是FIRST或LAST;
- trigger_body指定触发器的内容,即触发器执行的SQL语句。
示例
下面的示例演示了如何使用CREATE TRIGGER语句来创建一个触发器:
CREATE TRIGGER t_update_salary AFTER UPDATE ON employee FOR EACH ROW BEGIN UPDATE salary_history SET salary = NEW.salary WHERE employee_id = NEW.employee_id; END;
上面的触发器会在更新employee表中的行时自动执行,它会将新的salary值更新到salary_history表中。