解决方法
这是一个老问题,但由于它是我的搜索中不断涌现的问题,我想我会在这里发布一个解决方案。在我的情况下,我需要创建一个具有完整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]