摘要:
如何从mysql的备份sql文本里按CREATE TABLE标记来分割成小sql文件?这个解析不好弄,其实可以换一种思路,把所有的表名全查出来,然后在按表名生成导出脚本,生成的文件...
如何从mysql的备份sql文本里按CREATE TABLE标记来分割成小sql文件?
这个解析不好弄,其实可以换一种思路,把所有的表名全查出来,然后在按表名生成导出脚本,生成的文件就一个表一个了。
shell样例如下,仅供参考,请在自己测试环境下测试。脚本可以包装在一个大的shell里面一起执行。
一、生成所有的表名
mysql<<EOF
图片来源:网络
use cpai;
show tables;
quit
EOF
输入结果保持到tmp.txt
二、生成导出单个表数据的脚本
awk 'NR>1' tmp.txt >tables.txt #从第二行开始取
cat tables.txt |awk '{printf "mysqldump 数据库名 %s >%s.sql\n",$1,$1}' >mysql_dump_sig.sh
三、执行mysql_dump_sig.sh脚本,既可以导出一个个表到单独的每个文件里面。