mysqldump 使用数据库名称完全限定触发器

标签 mysql database mysqldump database-backups

我正在尝试使用 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/

相关文章:

mysql - 如何 mysqldump 数据库中每个表的最后 10 行?

mongodb - Mongo 的 convertToCapped 是否每次运行都分配更多空间?

Mysql ONLY_FULL_GROUP_BY 模式问题 - 为每个相册选择单个图像 URL(任何)

mysql - 正确的 MySQL 数据库布局

mysql - 使用子查询和分组依据计算每个国家/地区每日 DAU 平均值

database - Oracle 中是否有任何隐式日期格式转换?

mysql - 轻松导入 MySQL --tab 转储

Mysqldump 在 linux 上通过 cron 运行时创建空文件

php - 拉维尔 5 : How to do a join query on a pivot table using Eloquent?

mysql - laravel DB::raw() 奇怪的行为