當嘗試將資料插入到列的資料長度超過其定義寬度的MySQL 表中時,您會遇到「錯誤代碼:1406。資料對於列來說太長」錯誤。
考慮這個範例:
CREATE TABLE `TEST` ( `idTEST` INT NOT NULL , `TESTcol` VARCHAR(45) NULL , PRIMARY KEY (`idTEST`) );
在指定列長度內插入資料按預期工作:
INSERT INTO TEST VALUES ( 1, 'Vikas' );
但是,嘗試插入超過最大列長度的資料會導致錯誤:
INSERT INTO TEST VALUES ( 2, 'Vikas Kumar Gupta Kratika Shukla Kritika Shukla' );
發生這種情況是因為MySQL截斷了任何長於指定列的插入值
解決方案:
要解決此問題,請暫時停用MySQL 的嚴格模式:
在my.ini (Windows) 或my.cnf (Unix)檔案:
編輯「sql-mode」設定以刪除"STRICT_TRANS_TABLES":
# Set the SQL mode to strict sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
在資料庫管理工具中使用SQL 查詢:
在資料庫管理工具中使用SQL 查詢:
SET @@global.sql_mode= '';
執行下列查詢將全域SQL 模式設為空白:
停用嚴格模式後,您可以插入超過列長度的資料。但是,請務必小心,因為這可能會導致資料截斷和不一致,因此請謹慎使用此解決方案。以上是如何解決MySQL錯誤1406:資料對於列來說太長?的詳細內容。更多資訊請關注PHP中文網其他相關文章!