萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 錯誤 1366 Incorrect integer value 解決:修改欄位預設值

錯誤重現

INSERT INTO doc_main (..., shunxu, ...) VALUES (..., '', ...);
-- [Err] 1366 - Incorrect integer value: '' for column 'shunxu' at row 1

shunxu 為 INT 型別,傳入空字串 '' 導致型別轉換失敗 (SQL_MODE 含 STRICT_TRANS_TABLES 時)。

解決方法

  1. 檢視表結構:SHOW COLUMNS FROM doc_main LIKE 'shunxu'; 確認 Default: NULL。
  2. 修改預設值為 0:ALTER TABLE doc_main MODIFY shunxu INT NOT NULL DEFAULT 0;
  3. 或調整應用程式:傳入 NULL 或 0 而非空字串。
  4. 重啟 MySQL 服務 (視版本而定) 或執行 FLUSH PRIVILEGES; 使生效。

補充:SQL_MODE 影響

檢查 SELECT @@SQL_MODE;,若包含 STRICT_TRANS_TABLES / STRICT_ALL_TABLES 會嚴格拒絕非法值;移除嚴格模式可相容但不建議,應修正資料/程式。

copyright © 萬盛學電腦網 all rights reserved