sql >> データベース >  >> RDS >> Mysql

MySQLはデータベースをインポートしますが、特定のテーブルを無視します

    RandomSeedによって受け入れられた回答には、長い時間がかかる可能性があります。テーブルのインポート(後でドロップするだけ)は、サイズによっては非常に無駄になる可能性があります。

    を使用して作成されたファイルの場合
    mysqldump -u user -ppasswd --opt --routines DBname > DBdump.sql
    

    現在、約7GBのファイルを取得しています。そのうちの6GBは、ログテーブルのデータであり、そこにある必要はありません。このファイルのリロードには数時間かかります。 (開発目的で、またはライブリカバリで必要になった場合に)リロードする必要がある場合は、次のようにファイルをスキミングします。

    sed '/INSERT INTO `TABLE_TO_SKIP`/d' DBdump.sql > reduced.sql
    

    そして、次のコマンドでリロードします:

    mysql -u user -ppasswd DBname < reduced.sql
    

    これにより、「不要な」テーブルが作成されたが空の完全なデータベースが得られます。テーブルがまったく必要ない場合は、ロードの終了後に空のテーブルを削除するだけです。

    複数のテーブルの場合、次のようにすることができます:

    sed '/INSERT INTO `TABLE1_TO_SKIP`/d' DBdump.sql | \
    sed '/INSERT INTO `TABLE2_TO_SKIP`/d' | \
    sed '/INSERT INTO `TABLE3_TO_SKIP`/d' > reduced.sql
    

    「落とし穴」があります-「INSERTINTOTABLE_TO_SKIP」を含む可能性のあるダンプ内のプロシージャに注意してください。



    1. SQL Serverで「datetime」を「date」に変換する(T-SQLの例)

    2. オプションの依存関係の作成

    3. MySQLデータベースの画像をJSFデータテーブルに表示する

    4. MySQL:行レベルのセキュリティ(Oracleの仮想プライベートデータベースなど)を実行するにはどうすればよいですか?