首頁 >資料庫 >mysql教程 >如何解決MySQL錯誤1406:資料對於列來說太長?

如何解決MySQL錯誤1406:資料對於列來說太長?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-04 05:06:39895瀏覽

How to Solve MySQL Error 1406: Data Too Long for Column?

MySQL 錯誤:「1406.資料對於列來說太長」

當嘗試將資料插入到列的資料長度超過其定義寬度的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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn