「LOAD DATA LOCAL INFILE」クエリを使用して、.csv ファイルから Mysql db にデータをインポートしています。.csv には以下が含まれます。
ID | Name | Date | Price
1. 01 | abc | 13-02-2013 | 1500
2. 02 | nbd | blahblahbl | 1000
3. 03 | kgj | 11-02-2012 | jghj
My Mysql テーブルには次の列が含まれています。
Id INTEGER
NAME Varchat(100)
InsertionTimeStamp Date
Price INTEGER
上記のテーブルに .csv データをロードする MySQL クエリ:
LOAD DATA LOCAL INFILE 'UserDetails.csv' INTO TABLE userdetails
FIELDS TERMINATED BY ','
IGNORE 1 LINES
(Id,Name,InsertionTimeStamp,Price)
set InsertionTimeStamp = str_to_date(@d,'%d-%m-%Y');
クエリを実行すると、3 つのレコードがテーブルに挿入され、2 つの警告が表示されました
a) Incorrect datetime value : 'blahblahbl' for function str_to_date
b) Data truncate at row 3 (because of invalid INTEGER for Price column)
質問
1. Is there any way to avoid data being inserted in table which shows warnings/errors or the row which has invalid data
I dont want Row 2 & Row 3 to be inserted as it contains invalid data
2. For WARNING of Incorrect datetime value above, can I get the row no also?
Basically I want to get exact warning/error with the row number.