はじめに、これはMySQL自体からデータをロードすることではなく、コマンドラインツール「mysqlimport」を使用することです。
これを使用してCSVをテーブルに直接ロードし、生成された警告を確認する必要があります。詳細またはデバッグをオンにしても警告が表示されないようです。何か案は?
(MySQL 5.0.5)
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コマンドを一緒に実行することです。
他の人が言ったように、本当の問題はSHOW WARNINGSが機能するためには、同じ接続セッションにいる必要があるということです。 mysqlimportは、インポートが完了するとすぐにセッションから切断し、現在のバージョンでは警告のキャプチャを不可能にします。パッチを寄付する機会のようですね。 :)
Mysqlimportで警告を出力する方法も見つかりませんでした。しかし、mysqlimportは「LOAD DATA INFILE」しか実行しないので、mysqlコマンドを使用して「SHOW WARNINGS」が後に続くデータをインポートしてみませんか?