197

带有以下声明:

mysqldump --complete-insert --lock-all-tables --no-create-db 
--no-create-info --extended-insert --password=XXX -u XXX 
--dump-date yyy > yyy_dataOnly.sql

我得到如下 INSERT 语句:

INSERT INTO `table` VALUES (1,'something'),(2,'anything'),(3,'everything');

我需要的是这样的:

INSERT INTO `table` VALUES (1,'something');
INSERT INTO `table` VALUES (2,'anything');
INSERT INTO `table` VALUES (3,'everything');

有没有办法告诉“mysqldump”为每一行创建一个新的 INSERT 语句?谢谢你的帮助!

4

3 回答 3

313

采用:

mysqldump --extended-insert=FALSE 

请注意,多个插入将比一个大插入慢。

于 2012-09-15T17:01:51.973 回答
15

在较新的版本中,对标志进行了更改:来自文档:

--扩展插入,-e

使用包含多个 VALUES 列表的多行语法编写 INSERT 语句。这会导致转储文件更小,并在重新加载文件时加快插入速度。

- 选择

此选项默认启用,是 --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick -- 组合的简写设置字符集。它提供了快速转储操作并生成可以快速重新加载到 MySQL 服务器的转储文件。

因为 --opt 选项默认启用,您只需指定它的反面, --skip-opt 即可关闭几个默认设置。有关选择性启用或禁用受 --opt 影响的选项子集的信息,请参阅 mysqldump 选项组的讨论。

--skip-extended-insert

关闭扩展插入

于 2019-03-03T11:39:56.110 回答
0

对于 MariaDB,您将使用

mysqldump -u root -p'secret' --skip-extended-insert dbnamehere > y.sql

MaraiDB mysqldump文档

于 2021-08-20T22:52:20.527 回答