複数のデータベースを含むSQLファイルの分割

複数のデータベースを含むSQLファイルの分割

最近、複数のデータベースを含むSQLダンプファイルを受け取りました。これをデータベースごとに1つずつ複数の.sqlファイルに簡単に分割するために使用できるツールはありますか?

答え1

orステートメント.sqlを含むプレーンテキストファイルであると仮定すると、次のように効率的にこれを実行できます。CREATE SCHEMACREATE DATABASEsplit

$ split -p 'CREATE DATABASE' bigfile.sql splitsql_

これにより、各ファイルが見つかったステートメントで始まるなど、splitsql_aa新しいファイルセットが作成されます。splitsql_abCREATE

マニュアルsplit:

NAME
     split -- split a file into pieces
[...]
     -p pattern
             The file is split whenever an input line matches pattern,
             which is interpreted as an extended regular expression.
             The matching line will be the first line of the next
             output file.  This option is incompatible with the -b and
             -l options.

関連情報