mysql導入文件出現Data truncated for column 'xxx' at row 1的原因


mysql導入文件的時候很容易出現"Data truncated for column 'xxx' at row x",其中字符串里的xxx和x是指具體的列和行數.

有時候,這是因為數據類型的不對應,或者字符串長度不夠而造成的.

但是,經常出現row 1就報錯,並且感覺它沒什么不對的樣子.

這往往是因為windows的回車換行"\r\n"作怪,下面的測試說明了這種情況.

 

我有一個train.csv的數據文件,我用python修改后保存為c.csv.

但是,我用相同的命令把它們導入到mysql時,train能導入,c卻出錯.

 

我把行結束符從"\n"換成"\r\n"后,導入成功.

 

用notepad打開這兩個文件,會發現train根本沒有換行,而c則有換行.

這說明train里只有"\n",因此notepad無法識別到換行,而c里則是"\r\n".

 

然而用python生成c.csv的時候,輸出只有"\n",這說明python在win下會自動把"\n"變成"\r\n".

還有一點是,除了notepad外的大部分win下的編輯器,都既能識別"\n"又能識別"\r\n".

因此只有用notepad才能知道到底是"\n"還是"\r\n",或者用winHex等工具直接看ascii碼.

 

最后的結論是,注意這個數據文件的換行到底是"\n"還是"\r\n".


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM