data too long for column

sayWhat_sayHello發表於2018-09-07

mysql命令列下輸入:

set sql_mode="";

然後執行剛剛的命令。

需要注意這個只在本次視窗生效,如果經常做這樣的操作應該修改配置檔案。
windows下為my.ini
linux下為my.cnf


上面的方法主要是關閉 sql_mode下的

STRICT_TRANS_TABLES:

在該模式下,如果一個值不能插入到一個事務表中,則中斷當前的操作,對非事務表不做任何限制

雖然執行上顯示的大多數都是成功,但是會發現
Records: 320 Duplicates: 0 Warnings: 15

我們再使用show warnings 看警告內容

會發現

Data truncated for column at row xxx

這個錯誤,其實就是插入的資料不合法造成的,

比如:亂碼,超出欄位長度,非法字元等, 我這裡的插入的資料因為是中文所以超出欄位長度。擴容之後問題完美解決。

根據報錯的row+數字,我們其實可以很快發現問題。如果不是1,那麼很大可能就是某一條資料太長的原因導致的。

如果是1,那可能是因為編碼之類 的問題。

相關文章