2013-07-10 10 views
7

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

答えて

15

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

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

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

あなたはCREATE文/ DROPせずにダンプファイルを作成することができます

$ 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