我正在尝试使用mysqldump导出需要使用不同数据库名称导入的数据库。看看由mysqldump生成的SQL,看起来触发器是唯一的对象名称,它与源数据库名称完全合格,从而阻碍了我的需要。有没有办法指示mysqldump不能完全限定任何对象名称,包括触发器?mysqldump完全符合数据库名称触发条件
5
A
回答
2
我有同样的问题,我找到了解决方案。我使用MySQL Workbench来设计我的数据库,并在那里创建了一些触发器。他们都使用语法CREATE TRIGGER trigger_name
除了一个:CREATE TRIGGER dbname.trigger_name
(这只是我的错误)。 Mysqldump输出以相同的方式包含所有触发器:只有一个具有数据库名称。
Mysqldump使用您的原始CREATE TRIGGER
说明,你可以通过SHOW CREATE TRIGGER
看到。如果你有一个用数据库名称定义的触发器,只需用一个不带dbname的触发器替换它(删除并创建)即可。
1
最大的可能是您在创建触发器添加数据库名称。尝试更新您的触发器,而不使用数据库名称。
+0
它已经有一段时间,因为我不得不解决这个问题,但我敢肯定,这个问题不是由于使用完全限定的数据库名称创建触发器:mysqldump的将生成的数据库名称触发器创建脚本无论我如何创建它们,都是完全合格的。 – 2011-04-20 15:45:18
0
不是一个理想的解决方案,但通过抽下面的输出上的触发已经摆脱了数据库名称的我。
mysqldump ... opts ... | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/'
相关问题
- 1. 完全合格的属性名称
- 2. MySql触发器没有触发(完全)
- 3. 数据库名称
- 4. 根据条件修改数据框中的字符串名称
- 5. 软件包名称路径 - 完全合格后路径太长
- 6. 重命名上传文件,发布新名称到数据库
- 7. SQL完全空数据库
- 8. mysqldump的部分数据库
- 9. 备份数据库Django MysqlDump
- 10. 条件触发
- 11. 组合框的条件ChangePropertyAction触发器
- 12. 在Roslyn中获取完全限定的元数据名称
- 13. Roslyn完全限定名称空间元数据错误
- 14. PL/SQL数据库触发器 - 如果给定条件不符合,则使插入失败
- 15. 触发两个数据库
- 16. SQL数据库名称ASP.net
- 17. 更改数据库名称
- 18. 幻想名称数据库
- 19. 数据库名称限制
- 20. _initAutoloader数据库名称与
- 21. 搜索名称数据库
- 22. 从Firebase函数库中获取未知键名称触发器
- 23. Excel:如果条件符合,则提供单元格的名称
- 24. AngularJS 1.5组件模板完全渲染后的触发函数
- 25. 排名数据库条目
- 26. 完成按钮未触发在Xamarin条目上完成事件
- 27. 安全发货名称
- 28. 如何在EditorTemplate中获得完全合格的成员名称?
- 29. 如何获得完全合格的程序集名称
- 30. spring 3 + jpa 2 - 查询中完全合格的类名称
我不会验证这一点(从我需要它已经两年多了,在可预见的将来我不需要它),但这听起来像是一个合理而实用的解决方案,所以我正在标记它作为答案!感谢分享。 – 2013-02-19 14:54:39
哈,我看@emre实际上在一年前提出了这个解决方案,并且我把他击倒了。无论如何,他是一个怀疑,你的坚持,所以我会给你留下明显的答案。当然,如果有任何证据相反,我们会考虑那个。现在,我认为你的建议很有可能会帮助其他人。 – 2013-02-19 14:59:22
好吧,我刚测试过它,因为我有同样的问题。如果这很重要,我的MySQL服务器版本是5.5.29-0ubuntu0.12.04.1 – ducin 2013-02-20 07:41:55