假设我有数据库A和表b.给定多个.sql文件b1,b2,...,bn,每个文件对应一个b的互斥表转储,我将如何将所有文件b1,b2,...,bn组合成一个.sql表文件?或者我如何将单个文件的导入合并到一个表中?
Bil*_*win 19
没有特殊工具可以做到这一点.您可以简单地连接文件:
$ cat b1.sql b2.sql b3.sql > b_all.sql
Run Code Online (Sandbox Code Playgroud)
除了这些.sql文件的典型内容是DROP TABLE,然后是CREATE TABLE,然后是很多INSERT语句.如果每个单独的转储文件都是这样格式化的,那么如果按顺序还原它们,则每个转储文件都将DROP TABLE并擦除前一个文件导入的数据.
您可以在没有DROP/CREATE语句的情况下创建转储文件:
$ mysqldump --no-create-info <database> <table> ...
Run Code Online (Sandbox Code Playgroud)
但是如果您已经拥有转储文件(无法重新转储它们),并且您希望除了第一个文件之外的所有文件中除去DROP/CREATE语句:
$ ( cat b1.sql ; cat b2.sql b3.sql | sed -e '/^DROP TABLE/,/^-- Dumping data/d' ) > b_all.sql
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10505 次 |
| 最近记录: |