这已被问过几次,但我找不到解决问题的方法。基本上,当使用 MySQL Workbench 管理工具的内置工具 mysqldump 时,当我使用扩展插入转储数据库时,我会得到大量长行数据。我理解它为什么这样做,因为它通过将数据作为一个命令插入(尤其是在 InnoDB 上)来加快插入速度,但是格式化使得实际上很难查看转储文件中的数据,或者使用 diff 工具比较两个文件如果您将它们存储在版本控制等中。在我的情况下,我将它们存储在版本控制中,因为我们使用转储文件来跟踪我们的集成测试数据库。
现在我知道我可以关闭扩展插入,所以我会得到每行一个插入,这是可行的,但任何时候你使用转储文件进行恢复都会变慢。
我的核心问题是,在我转储文件时我们使用的 OLD 工具(MySQL 管理员)中,它的作用基本相同,但它格式化 INSERT 语句以每行插入一个,同时仍然进行批量插入.所以不要这样:
INSERT INTO `coupon_gv_customer` (`customer_id`,`amount`) VALUES (887,'0.0000'),191607,'1.0300');
你明白了:
INSERT INTO `coupon_gv_customer` (`customer_id`,`amount`) VALUES
(887,'0.0000'),
(191607,'1.0300');
无论我尝试什么选项,似乎都没有办法获得这样的转储,这确实是两全其美。是的,它需要更多空间,但在需要人工阅读文件的情况下,它会更有用。
我是否遗漏了什么,有一种方法可以使用 MySQLDump 做到这一点,还是我们都倒退了,旧的(现已弃用)MySQL Administrator 工具中的此功能不再可用?
最佳答案
尝试使用以下选项: --skip-extended-insert
它对我有用。
关于mysql - 使用 mysqldump 格式化每行插入一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15750535/