次のように MYSQL にファイルをインポートしています。
LOAD DATA LOCAL INFILE 'C:\\Users\\Justin.Mathieu\\Documents\\data.csv' into table Ingredients
fields terminated by ','
optionally enclosed by '"'
lines terminated by '\n'
(iVendor, iName, iOrderNumber, iCaseQty, iUnitSize, iDrainSize, iUnitSoldBy, iCaseCost, iVolumeConversion, iUnitLabel, iIngredients)
インポート データの一部のサンプル:
VendorName,"Apple Whole Peeled Cored Grd A Fz",61318,1,\N,\N,\N,38.17,\N,\N,\N
VendorName,"Apples- Applesauce Sweetened",10738,6,\N,\N,-1,24,\N,\N,\N
VendorName,"Applesauce Unswtn Fancy",10676,6,106,\N,-1,23.97,\N,\N,"Apples, Water, Erythorbic Acid (To Maintain Color)"
VendorName,Apron 24"X42" White Reg Wt - Dispenser ,81463,1,\N,\N,\N,9.98,\N,\N,\N
VendorName,"Artichoke Heart 40-50Cnt Quartered, Marintated",10722,6,88,\N,-1,71.46,\N,,"Artichoke Hearts, Vegetable Oil (Soya Or Sunflower), Water, Vinegar"
VendorName,"Artichoke Heart Crse Ct",77334,6,\N,55,\N,49.16,\N,\N,\N
VendorName,"Artichoke Heart Quarters",11804,6,\N,\N,-1,62.46,\N,\N,"Artichoke Hearts, Water, Salt And Citric Acid"
VendorName,"Artichoke Quarters Mixed Cuts",D6808,6,\N,\N,\N,60.26,\N,\N,\N
VendorName,"Bacon Bit Real Ref",56188,2,\N,\N,\N,51.22,\N,\N,\N
VendorName,"Barley Pearled Dry Us #1 Standard",33050,2,\N,\N,\N,21.38,\N,\N,\N
最初の問題は、\N の使用です。インポート後にデータベースを見ると、null を取得する代わりに、iIngredients フィールドに「N」が表示されます。
2番目の問題は、ほとんどの行がインポートされないことです。これは、私が得ているエラーのサンプルです:
164 row(s) affected, 64 warning(s):
1262 Row 3 was truncated; it contained more data than there were input columns
1262 Row 5 was truncated; it contained more data than there were input columns
1262 Row 9 was truncated; it contained more data than there were input columns
1262 Row 10 was truncated; it contained more data than there were input columns
1262 Row 11 was truncated; it contained more data than there were input columns
1262 Row 12 was truncated; it contained more data than there were input columns
Records: 164 Deleted: 0 Skipped: 0 Warnings: 94
すべての行に、"" で囲まれるコンマを含む可能性のあるデータがあることを確認しました。
何が起こっているのでしょうか?
編集:文字列行には "" を、文字列以外の行には \N を使用するだけで、\N の問題を解決できました。
編集 2:切り捨てられた行では、iIngredients フィールドには、".