プロが教える店舗&オフィスのセキュリティ対策術

仕事でデータの移行(移行先のRDBMSがMySQL)を行うのですが、
下記の件について分かる方がいらっしゃいましたら、回答を頂けますでしょうか。

【行う作業】
・移行先のテーブル項目に合わせたタブ区切りのロードファイルを作成し、シェル(bash)からLOAD DATA INFILE構文を呼び出してファイルロードを行います。

シェル上では、下記コマンドを発行して、テーブルへのロードを行い、実行結果(ワーニング内容など)はログファイルにリダイレクトさせようと考えています。

--発行するコマンド--
mysql --show-warnings -u ユーザ名 -pパスワード DB名 < "/data/data/pet.sql" > logfile.log

(※上記の"/data/data/pet.sql"ですが、内容は下記の通りです。
LOAD DATA LOCAL INFILE '/data/data/pet.csv' INTO TABLE DB名.pet FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '' ESCAPED BY '';)


上記コマンドを発行すると、詳細なワーニング情報
Warning(Code:1265):Data truncated for columns ~
などの情報はリダイレクトされるのですが、

Query OK, 0 rows affected, 3 warnings (0.00 sec)
Records: 5 Deleted: 0 Skipped: 5 Warnings: 3

のような何件ロードされて、うち何件がスキップされたという件数情報を出すことが出来ない状態です。


mysqlのターミナルに入って、LOAD DATA INFILE文を発行すると、「Query OK, ~」の件数情報は出力できるのですが、シェルのコマンドラインからロード文を発行させようとすると、件数情報を出力させることは出来ないものなのでしょうか。
お手数ですが、ご存知の方がいらっしゃいましたら、回答を頂ければと思います。

よろしくお願いいたします。

A 回答 (1件)

一般にデータ移行はmysqldumpで吐き出されたデータをを利用しますが


そうしない理由はありますか?
mysqldumpはsql文を履くため、データがスキップされたりすることはないと思います
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

今回のデータ移行は、(移行元)Oracle → (移行先)MySQLでして、
tsvファイルを作成してMySQL側にテーブル単位でデータを移行させようと考えています。
データ移行はあまり経験がないのですが、移行といったらdumpファイルを作成するようなものが一般的なんですね。

質問内容に記載不足が有り申し訳ありませんでしたが、頂いたご回答は参考になりました。
ありがとうございました。

お礼日時:2016/09/27 00:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す