使用以下语句:
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条答案
按热度按时间bq3bfh9z1#
Use:
请注意,多个插入将比一个大的插入慢。
vktxenjb2#
在较新版本中,对标志进行了更改:
来自文档:
一个月一次,一个月一次
使用包含多个VALUES列表的多行语法编写INSERT语句。这将生成较小的转储文件,并在重新加载文件时加快插入速度。
--opt
默认情况下启用的此选项是
--add-drop-table
--add-locks
--create-options
--disable-keys
--extended-insert
--lock-tables
--quick
--set-charset
组合的简写。它提供快速转储操作并生成可快速重新加载到MySQL服务器的转储文件。由于
--opt
选项在缺省情况下是启用的,因此您只需指定它的匡威选项--skip-opt
来关闭几个缺省设置。有关选择性地启用或禁用受--opt
影响的选项子集的信息,请参见mysqldump选项组的讨论。--skip-extended-insert
关闭扩展插入
aurhwmvo3#
对于MariaDB,您可以使用
MaraiDB加密转储Docs
tzdcorbm4#
给那些不想
//导致性能损失。
这可能是工作
//未找到正式解决方案,仅使用
sed
进行格式化使用
sed
//第一项前没有换行符。
//在第一项前添加换行符。
输出
0.原件:
1.变为:
一个三个三个一个
http://blog.lavoie.sl/2014/06/split-mysqldump-extended-inserts.html
https://stackoverflow.com/q/15750535#answer-19961480 Solution came from here, I didn't do fully test