10

データベース A とテーブル b があるとします。複数の .sql ファイル b1、b2、...、bn があり、それぞれが b の相互に排他的なテーブル ダンプに対応している場合、すべてのファイル b1、b2、...、bn を単一の .sql テーブル ファイルに結合するにはどうすればよいでしょうか? または、個々のファイルのインポートを単一のテーブルに結合するにはどうすればよいでしょうか?

4

1 に答える 1

20

これを行うための特別なツールはありません。ファイルを単純に連結できます。

$ cat b1.sql b2.sql b3.sql > b_all.sql

これらの .sql ファイルの典型的な内容が DROP TABLE、次に CREATE TABLE、そして多くの INSERT ステートメントであることを除いて。個々のダンプ ファイルのそれぞれがそのようにフォーマットされている場合、それらを順番に復元すると、それぞれが DROP TABLE し、前のファイルによってインポートされたデータが消去されます。

DROP/CREATE ステートメントを使用せずにダンプ ファイルを作成できます。

$ mysqldump --no-create-info <database> <table> ...

しかし、すでにダンプ ファイルがあり (再ダンプできない)、最初のファイル以外のすべての DROP/CREATE ステートメントを削除したい場合は、次のようにします。

$ ( cat b1.sql ; cat b2.sql b3.sql | sed -e '/^DROP TABLE/,/^-- Dumping data/d' ) > b_all.sql
于 2013-07-10T23:44:53.760 に答える