当前位置: 首页 > 面试题库 >

错误代码:1406。列的数据太长-MySQL

郑和泰
2023-03-14
问题内容

错误代码:1406。数据对于列而言太长

CREATE  TABLE `TEST` 
(

  `idTEST` INT NOT NULL ,

  `TESTcol` VARCHAR(45) NULL ,

  PRIMARY KEY (`idTEST`) 
);

现在Insert一些值

INSERT INTO TEST
VALUES
(
    1,
    'Vikas'
)

select

SELECT * FROM TEST;

插入记录超过 length

INSERT INTO TEST
VALUES
(
    2,
    'Vikas Kumar Gupta Kratika Shukla Kritika Shukla'
)

如果我们selectlength

SELECT LENGTH('Vikas Kumar Gupta Kratika Shukla Kritika Shukla')

 '47'

它显示错误信息

错误代码:1406。数据对于列而言太长

但是我的期望是,我想在表中至少插入前45个字符

如果问题不清楚,请告诉我。

我知道此错误的原因。我正在尝试插入比数据类型长度更多的值。

我想要MySQL中的解决方案,因为它可能在中MS SQL。所以我希望它也会出现在 MySQL中


问题答案:

MySQL将截断任何超出指定列宽的插入值。

要使此没有错误,请尝试切换SQL mode为不使用STRICT

MySQL参考手册

编辑:

改变模式

这可以通过两种方式完成:

  1. 在MySQL安装目录中打开my.ini(Windows)或my.cnf(Unix)文件,然后查找文本“ sql-mode”。

找:

码:

# Set the SQL mode to strict 
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

用。。。来代替:

码:

# Set the SQL mode to strict 
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

要么

  1. 您可以在数据库管理工具(例如phpMyAdmin)中运行SQL查询:

码:

SET @@global.sql_mode= '';


 类似资料:
  • 错误代码:1406。数据对于列来说太长了 现在一些值 插入的记录 如果我们 它显示了错误信息 错误代码:1406。数据对于列来说太长了 但我的期望是,我想在表中插入至少前45个字符 如果问题不清楚,请告诉我。 我知道此错误的原因。我正在尝试插入超过数据类型长度的值。 我想要MySQL中的解决方案,因为它可以在MSSQL中使用。所以我希望它也能在MySQL中使用。

  • 从我的应用程序注册表单中,我试图将复选框值插入到mysql表中,但它抛出错误1406 Data对于列来说太长了。复选框的值为 0 或 1。而我的表结构是,创建表测试(checkbox_response位(1))... 我经历了一些事情,找到了解决这个问题的方法。解决方案是,我刚刚更改了sql模式SET@@global。sql_mode=“”…正确插入后。 虽然“我的数据类型大小”适合复选框值,但为

  • 问题内容: 我有一个单元测试,其中我静态定义了一个很大的字节数组(超过8000个字节)作为我每次运行单元测试时都不希望读取的文件的字节数据。 这在Eclipse中可以正常编译,但是通过Ant脚本进行编译时,出现以下错误: 任何想法为何以及如何避免这种情况? 答案 :Shimi的答案成功了。我将字节数组移到一个单独的类中,并且编译良好。谢谢! 问题答案: Java中的方法在字节码中限制为64k。静态

  • 我已经编写了一个MySQL脚本,为假设的医院记录创建一个数据库,并用数据填充它。其中一个表Department有一个名为Description的列,该列声明为varchar(200)类型。对Description I执行INSERT命令时,出现错误: 错误1406:数据对于第1行的列“描述”来说太长。 我插入的所有字符串都小于150个字符。 以下是声明:< br > 下面是插入命令: 显然,这应该

  • 我试图使用C#将一些字符串值插入到mysql表中的中。 每次值都会不断变化。 有时,应用程序会引发异常。 我浏览了一些帖子: “列的数据太长”-为什么 数据截断:第1行“logo”列的数据太长 mysql-Mysql2::错误:第1行的列“description”的数据太长 数据截断:第1行“Phone”列的数据太长 MySQL数据过长错误 但我的问题是: 如何以编程方式决定长度字符串(或其他数据

  • 我使用的mysql2库与NodeJS。我在本地机器和服务器上有相同的代码和数据库结构。当我上传一张照片到“照片”表时,在我的本地机器上,它工作正常。当我使用服务器时,我得到以下错误: {错误:数据太长,列'照片'在第1行Packet.as错误(/srv/project/server/node_modules/mysql2/lib/数据包/packet.js:716: 13)在查询。Command.