首页 > 数据库 > mysql教程 > 如何解决MySQL错误1406:数据对于列来说太长?

如何解决MySQL错误1406:数据对于列来说太长?

Mary-Kate Olsen
发布: 2025-01-04 05:06:39
原创
884 人浏览过

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= '';
登录后复制

禁用严格模式后,您可以插入超过列长度的数据。但是,请务必小心,因为这可能会导致数据截断和不一致,因此请谨慎使用此解决方案。

以上是如何解决MySQL错误1406:数据对于列来说太长?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板