返回介绍

trigger

发布于 2024-06-15 14:30:40 字数 3599 浏览 0 评论 0 收藏 0

trigger

触发器是 MySQL5 新增的

当一个事件发生时,自动的执行一个操作。触发器是 MySQL 响应一下任意语句而自动执行的一条 MySQL 语句(或位于 BEGIN 和 END 之间的一组有):

  • DELETE
  • INSERT
  • UPDATE

其他 MySQL 语句不支持触发器。

创建

在创建触发器时,需要该出4方面的信息:

  • 唯一的触发器名,必须在每个表中唯一,但不是在整个数据库中唯一。这在其他数据库是不允许的,MySQL 是否会在将来改为全库唯一不确定,所有最好是全库唯一的。
  • 触发器关联的表
  • 触发器应该响应的活动(DELETE、INSERT、UPDATE)
  • 触发器何时执行(处理之前或处理之后)

CREATE TRIGGER newproduct AFTER INSERT ON products FOR EACH ROW SELECT 'Product added';

对 products 表每插入一行(FOR EACH ROW),之后都输出一条 'Product added' 的消息。

只有表才支持触发器,视图和临时表都不支持。

触发器按每个表每个事假每次地定义,每个表每个事件每次只允许一个触发器。因此每个表最多支持6个触发器(事件前和事件之后)。

如果 BEFORE 触发器失败,则 MySQL 将不执行请求操作,此外,如果 DEFORE 触发器或者语句本身出错, AFTER 触发器将不执行。

删除触发器

DROP TRIGGER trigger_name;

触发器不能更新或覆盖,为了修改一个触发器,必须先删除它,然后在重新创建。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文