2

約200のテーブルとそれらのテーブルのいくつかの数百万のレコードを含む巨大なダンプファイルがあります。私がそうするとき、私は特定のテーブルを無視することが可能であることを知っていますmysqldump

ダンプからデータベースを「復元」するときに、一部のテーブルを無視したり、それらのテーブルの挿入クエリだけを無視したりすることはできますか?

前もって感謝します。

4

1 に答える 1

1

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

これは、境界に使用しているパターンがデータ自体に発生していないことを前提としています。

于 2013-02-26T02:46:42.377 に答える