从mysql.sql转储文件中提取表

Rya*_*yan 9 mysql sql linux scripting

我在mysql.sql文件中有一个产品表.我希望提取一个表并将其放在它自己的文件中.你会怎么做呢?

Pie*_*NAY 20

我发现这个很好的解决方案,你必须在你的服务器上下载这个脚本并输入

$> ./MyDumpSplitter.sh yourfile.sql your_table_name
Run Code Online (Sandbox Code Playgroud)

这会将您的表提取到your_table_name.sql中


Optionnal

现在,您可以使用此类命令重命名它

$> sed -i 's/`your_table_name`/`your_table_name2`/g' your_table_name.sql
Run Code Online (Sandbox Code Playgroud)

并重新注入它

mysql> source your_table_name.sql;
Run Code Online (Sandbox Code Playgroud)

  • 注意:从完整转储中提取单个表时,转储开始处的“ SET语句”会丢失,例如:SET NAMES utf8; -因此您可能会导入utf8表并获取加扰的数据,因为客户端使用了错误的编码!所有其他解决方案都存在相同的问题。 (2认同)

Pek*_*ica 0

据我所知,没有工具可以通过这种方式解析原始 mySQL 转储文件。

要么复制+粘贴它(可能很麻烦),要么将其导入临时数据库,删除其他所有内容,然后将表转储回文件中。

  • 没有理由放弃其他所有内容,您可以 mysqldump 单个表 (2认同)