OracleやPostgreSQLのデータをMySQLに対して入れ込みたい場合があります。
そんな場合は、mysqlimportコマンドを使います。
まず、他のデータベースのデータを,や適当な文字列で区切ってテキストファイルに吐き出します。
そして次のようにしてmysqlimportコマンドに、先ほど吐き出したファイルを指定してあげます。
$ mysqlimport -i -u root -p --fields-terminated-by="," データベース名 ファイル名
Password:***
この際に、ファイル名はテーブル名となるので注意が必要です。
例えば、hogehoge.txt だったら、 hogehoge テーブルにデータが挿入されます。
ここで -i オプションをつけているのは、重複データでエラーがでてもそのデータは無視してインポートを継続するという指定をしています。つけなければ、重複エラーでストップします。
--fields-terminated-by="," として , を指定しているのはフィールドが , で区切られているということを指定しています。
もしも、データ内にカンマが使われているような場合は、上手くデータのインポートが出来ませんので、デリミタを設定しなおしたりする必要があります。
UNIX上でお勧めは、vim などで挿入モードなどの場合に、[Ctrl]+[V]+[C] で打ち込めるコントロールコードです。通常のデータではこのような値は入り込まないので、デリミタとして最適です。
詳細はこちら
スポンサードリンク
PHP&MySQL