触发器
触发器是MySQL响应以下任意语句而自动执行的一条MySQL语句。
创建触发器
在创建触发器时,需要给出4条信息:
- 唯一的触发器名;
- 触发器关联的表;
- 触发器应该响应的活动(DELETE、INSERT或UPDATE);
- 触发器何时执行(处理之前或之后)。
CREATE TRIGGER triggername AFTER xxx FOR RACh ROW xxx
触发器可在一个操作发生之前或之后执行,这里给出了AFTER INSERT
, 所以此触发器将在INSERT语句成功执行后执行。这个触发器还指定FOR EACH ROW
,因此代码对每个插入行执行。
仅支持表,不支持视图。
每个表最多支持6个触发器。单一触发器不能与多个事件或多个表关联,所 以,如果你需要一个对INSERT和UPDATE操作执行的触发器,则应该定义 两个触发器。
触发器失败:如果BEFORE触发器失败,则MySQL将不执行请 求的操作。此外,如果BEFORE触发器或语句本身失败,MySQL 将不执行AFTER触发器。
删除触发器
DROP TRIGGER triggername