触发器
触发器是MySQL响应以下任意语句而自动执行的一条语句(或位于BEGIN和END语句之间的一组语句)
如下:
- DELETE
- INSERT
- UPDATE
触发器注意事项
- 唯一的触发器名(最好做到在每个数据库中唯一)
- 触发器关联的表
- 触发器应该响应的活动(DELETE、INSERT或UPDATE)
- 触发器何时执行(处理之前或之后)
- 只有表才支持触发器
- 每个表最多支持6个触发器(每条INSERT、UPDATE和DELETE的之前和之后)
- 单一触发器不能与不能与多个事件或多个表关联
- 如果BEFORE触发器失败,则MySQL将不执行请求的操作。此外,如果BEFORE触发器或语句本身失败,MySQL将不执行AFTER触发器。
创建触发器
CREATE TRIGGER newproduct BEFORE INSERT ON products FOR EACH ROW SET NEW.prod_id = Upper(NEW.prod_id);
CREATE TRIGGER newproduct AFTER INSERT ON products FOR EACH ROW BEGIN
xxxxxxx
END;
删除触发器
DROP TRIGGER newproduct;
NOTES:触发器不能更新或覆盖。为了修改一个触发器,必须先删除它,然后再重新创建。
关于触发器的进一步介绍
- 创建触发器可能需要特殊的安全访问权限,但是,触发器的执行是自动的。
- 应该用触发器来保证数据的一致性
- 触发器的一种非常有意义的使用是创建审计跟踪。
具体详细可以参考:TRIGGER