如何使用一个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] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |