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