約200のテーブルとそれらのテーブルのいくつかの数百万のレコードを含む巨大なダンプファイルがあります。私がそうするとき、私は特定のテーブルを無視することが可能であることを知っていますmysqldump
。
ダンプからデータベースを「復元」するときに、一部のテーブルを無視したり、それらのテーブルの挿入クエリだけを無視したりすることはできますか?
前もって感謝します。
mysqlクライアントでこれを行う方法はありません。ダンプファイルは基本的にCREATETABLEおよびINSERTステートメント(およびその他のいくつか)の大きなコレクションであり、mysqlクライアントにはそのようなSQLスクリプトの一部を実行する方法がありません。
ただし、必要に応じて、を使ってクリエイティブにすることでそれを行いましsed
た。たとえば、テーブル「do_not_want」の作成とデータを除外したい場合は、次のようにすることができます。
cat mydumpfile.sql |
sed -e '/^-- Table structure for table .do_not_want./,/^UNLOCK TABLES;/d' |
mysql
これは、境界に使用しているパターンがデータ自体に発生していないことを前提としています。