質問: 1; ``` のように加工するには、どのような方法がありますでしょうか。 vimで加工しようとしましたが、ファイルサイズが大きくて動作が重くなり、編集する前に固まってしまいます。
回答: ダンプファイルを手動で書き換えるのは、お勧めできません。 テキストエディタで開いた際にデータを壊してしまったり、 一括置換の機能を使った際に意図しない箇所まで置換してしまう可能性があるからです。 とうわけで、以下の手順で実現できないか、検討してみてください。 ###### 1 「別のDB(テーブル)」があるMySQLインスタンス内に、作業用スキーマを作成する。 ``` mysql> CREATE DATABASE tmp; ``` ###### 2 作業用スキーマにダンプファイルをインポートする。 ``` # mysql -u[ユーザー名] -p[パスワード] tmp < [ダンプファイル] ``` ###### 3 「別のDB(テーブル)」を更新する。 ``` mysql> UPDATE dest_db.testtable, tmp.testtable SET dest_db.testtable.name = tmp.testtable.name, dest_db.testtable.text = tmp.testtable.text WHERE dest_db.testtable.id = tmp.testtable.id ``` ※ `複数テーブル構文`を使用している ###### 4 作業用スキーマを削除する。 ``` mysql > DROP DATABASE tmp; ``` 「特定のテーブル」と「別のDB(テーブル)」がもともと同じMySQLインスタンスにあるなら、手順3 のみで実現可能です。 (SQL文内のスキーマ名(もしかしたらテーブル名も)は適宜 変更する必要がありますが)