我正在尝试使用 mysqldump 导出需要使用不同数据库名称导入的数据库。查看 mysqldump 生成的 SQL,触发器似乎是唯一与源数据库名称完全限定的对象名称,因此满足了我的需求。无论如何,有没有指示 mysqldump 不完全限定任何对象名称,包括触发器?
最佳答案
我遇到了同样的问题,我找到了解决方案。我使用 MySQL Workbench 设计我的数据库,并在那里创建了一些触发器。他们都使用语法 CREATE TRIGGER trigger_name
除了一个:CREATE TRIGGER dbname.trigger_name
(这只是我的错误)。 Mysqldump 输出以相同的方式包含所有触发器:只有一个具有数据库名称。
Mysqldump 使用您原来的 CREATE TRIGGER
指令,您可以通过 SHOW CREATE TRIGGER
查看这些指令。如果您有一个用数据库名称定义的触发器,只需将其替换(删除并创建)为一个没有 dbname 的触发器即可。
关于mysqldump 使用数据库名称完全限定触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4001071/