mysql - 使用 mysqldump 格式化每行插入一个?

标签 mysql mysqldump mysql-workbench mysqladministrator

这已被问过几次,但我找不到解决问题的方法。基本上,当使用 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/

相关文章:

mysql - Multi-Tenancy 数据库,每个表上都有租户 ID

php - 如何更快地创建索引?

php - 统计本周-周一-周日的mysql记录

mysql - 将 MySQL 转储文件导入 MSSQL

mysql - 如何将 MySQL 迁移到 MySQL 5 数据库

mysqldump 行超时问题

mysql - #1064、xampp、phpMyAdmin、MYSQL - 为什么我的 mySQL 语法有错误?

mysql - 使用node.js在mysql中插入大卷数据时出错(错误代码: 'ECONNRESET' )

mysql - 向有条件的行授予选择权限

mysql - 为什么这个距离查询没有返回结果