web-dev-qa-db-ja.com

「mysqlimport」ユーティリティからの警告をどのようにリストしますか?

はじめに、これはMySQL自体からデータをロードすることではなく、コマンドラインツール「mysqlimport」を使用することです。

これを使用してCSVをテーブルに直接ロードし、生成された警告を確認する必要があります。詳細またはデバッグをオンにしても警告が表示されないようです。何か案は?

(MySQL 5.0.5)

28
brink

Mysqlimportでは不可能ですが、代わりに以下を実行できます。

mysql --execute="LOAD DATA LOCAL INFILE '$WORKDIR/$table.csv' INTO TABLE $table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' IGNORE 1 LINES (listOfColumnNames); SHOW WARNINGS"

listOfColumnNamesを列の適切な区切りリストに置き換えます。

魔法は(Eduardが前述したように)mysqlimportが警告を直接取得する方法を提供しないため、同じセッションでLOAD DATA INFILEとSHOW WARNINGSコマンドを一緒に実行することです。

31
shollyman

他の人が言ったように、本当の問題はSHOW WARNINGSが機能するためには、同じ接続セッションにいる必要があるということです。 mysqlimportは、インポートが完了するとすぐにセッションから切断し、現在のバージョンでは警告のキャプチャを不可能にします。パッチを寄付する機会のようですね。 :)

5
Vinny

Mysqlimportで警告を出力する方法も見つかりませんでした。しかし、mysqlimportは「LOAD DATA INFILE」しか実行しないので、mysqlコマンドを使用して「SHOW WARNINGS」が後に続くデータをインポートしてみませんか?

1
Eduard Wirch