MySQLで複数テーブルから指定条件のレコードをエクスポートしたい
動機
とあるキーに紐づくレコードを、別のデータベースに移行したかった。
方法
mysqldumpに以下のオプションを指定して実行する。
- -t: DROP TABLE, CREATE TABLEを出力しない
- テーブル名: エクスポートしたいテーブルを指定する
- --where: テーブルに指定したい条件を指定する
例
users, browsing_histories, purchase_historiesというテーブルにuser_idカラムがある場合の例。
$ mysqldump -u user -p -t database users browsing_histories purchase_histories --where "user_id = '123'" > dump.sql $ mysql -u user -p database < dump.sql