加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

如何使用一个SQL语句删除MySQL数据库中的所有触发器?

发布时间:2020-12-12 06:52:19 所属栏目:MsSql教程 来源:网络整理
导读:我有一个已克隆的数据库,现在所有日志记录触发器都指向原始模式中的日志表。我需要一次性删除所有这些(有几十个),以便我可以重新创建它们。如何用一个命令完成? 解决方法 这是一个老问题,但由于它是我的搜索中不断涌现的问题,我想我会在这里发布一个解决
我有一个已克隆的数据库,现在所有日志记录触发器都指向原始模式中的日志表。我需要一次性删除所有这些(有几十个),以便我可以重新创建它们。如何用一个命令完成?

解决方法

这是一个老问题,但由于它是我的搜索中不断涌现的问题,我想我会在这里发布一个解决方案。在我的情况下,我需要创建一个具有完整mysqldump的单个文件,然后删除任何触发器,然后重新添加它们。我能够通过使用以下命令将DROP TRIGGER语句附加到我的转储中,然后再附加触发器的转储。
mysql -u [db user] -p[db password] --skip-column-names [db name] -e 'SHOW TRIGGERS;' | cut -f1 | sed -r 's/(.*)/DROP TRIGGER IF EXISTS 1;/' >> dump.sql

要在同一个命令中实际删除所有触发器(如注释中的@Stephen Crosby所述),您可以将其重新导入MySQL,如下所示:

mysql -u [db user] -p[db password] --skip-column-names [db name] -e 'SHOW TRIGGERS;' | cut -f1 | sed -r 's/(.*)/DROP TRIGGER IF EXISTS 1;/' | mysql -u [db user] -p[db password] [db name]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读