【问题标题】:Modifying a MySQL Trigger修改 MySQL 触发器
【发布时间】:2011-03-17 14:27:08
【问题描述】:

我有一个想要修改的 MySQL 触发器。唯一的变化是在触发器主体中。

更新INFORMATION_SCHEMA.TRIGGERS 中的ACTION_STATEMENT 列就足够了吗?这是更新触发器的正确​​方法吗?具体来说,我正在寻找这样做可能出现的任何问题。

【问题讨论】:

    标签: mysql sql triggers database-trigger


    【解决方案1】:

    那行不通。

    您需要删除触发器并重新创建它。

    http://dev.mysql.com/doc/refman/5.1/en/create-trigger.html

    【讨论】:

    • 现在 mysql 是 5.6/5.7/8.0 还适用吗?我在链接中没有看到任何关于版本 information_schema.TRIGGERS 的警告(现在是 8.0 和 5.1 显然不再在线)
    • @Xenos 我认为这在新版本中没有改变。从 MySQL 8.0 开始,如果你想改变它,你仍然需要 DROP/CREATE 一个触发器。
    • 确实,我在发表评论后尝试过,TRIGGERS 表实际上不可更新(表无法更新左右)。因此需要再次删除和创建触发器。
    【解决方案2】:

    下载 dbForge express(与 Beer 一样免费)。
    与之连接并编辑触发器。

    下载页面 http://www.devart.com/dbforge/mysql/studio/download.html

    直接链接 https://www.devart.com/dbforge/mysql/studio/dbforgemysql80exp.exe

    不要在 information_schema 中胡闹。
    哦,不要使用 MySQL 工作台 5.2 我已经让那个人吃了我的工作两次(..gone..)再也不会了。

    不,我没有分享,只是一个快乐的 dbForge 用户

    【讨论】:

    【解决方案3】:

    ACTION_STATEMENT 列包含调用触发器时要执行的语句。这与 SHOW TRIGGERS 输出的 Statement 列中显示的文本相同。请注意,此文本使用 UTF-8 编码。 MYSQL TRIGGERS SCHEMA TABLE

    你是对的,如果你编辑 ACTION_STATEMENT 字段,你就修改了 SQL 操作。

    【讨论】:

      猜你喜欢
      • 2014-12-25
      • 1970-01-01
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-24
      • 1970-01-01
      相关资源
      最近更新 更多