首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL ERROR 1406 Data Too Long 解決方案

     編輯:MySQL 資料庫相關知識

插入數據時遇到 ERROR 1406: Data too long for column,通常是嚴格模式導致。

快速解決:調整 SQL 模式

編輯 my.ini,找到 sql-mode 配置:

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

移除 STRICT_TRANS_TABLES 或直接註釋整行:

# sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

重啟 MySQL 服務生效。

原理說明

  • STRICT_TRANS_TABLES:嚴格模式下,數據超出列長度直接報錯
  • 非嚴格模式:自動截斷超長數據並發出警告(Warning 而非 Error)

最佳實踐建議

  1. 根治:檢查表結構,按業務需求調整列長度(ALTER TABLE MODIFY COLUMN)
  2. 應用層:入庫前驗證截斷,避免靜默數據丟失
  3. 遷移期:臨時關閉嚴格模式兼容舊數據,上線後恢復

警告:生產環境長期關閉嚴格模式會導致數據質量下降,建議僅作臨時過渡方案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved