当前位置: 首页 > 知识库问答 >
问题:

“列的数据太长”-为什么?

申屠英韶
2023-03-14

我已经编写了一个MySQL脚本,为假设的医院记录创建一个数据库,并用数据填充它。其中一个表Department有一个名为Description的列,该列声明为varchar(200)类型。对Description I执行INSERT命令时,出现错误:

错误1406:数据对于第1行的列“描述”来说太长。

我插入的所有字符串都小于150个字符。

以下是声明:< br >

CREATE TABLE Department(
    ...
    Description varchar(200)
    ...);

下面是插入命令:

INSERT INTO Department VALUES
(..., 'There is some text here',...), (..., 'There is some more text over here',...);

显然,这应该是可行的。有人有见解吗?

共有3个答案

卜高超
2023-03-14

无论列数或单个列长度如何,mysql表的单行中可以存储多少数据都有硬性限制。

如官方文件所述

最大行大小限制了列的数量(可能还有大小),因为所有列的总长度不能超过这个大小。例如,utf8字符每个字符最多需要三个字节,因此对于CHAR(255)CHARACTER SET utf8列,服务器必须为每个值分配255×3=765字节。因此,一个表不能包含超过65,535/765=85个这样的列。

可变长度列的存储包括根据行大小评估的长度字节。例如,VARCHAR(255)字符集utf8列需要两个字节来存储值的长度,因此每个值最多可以占用767个字节。

在这里,您可以找到 INNODB 表的限制

空慈
2023-03-14

我在将旧数据库迁移到新版本时遇到了类似的问题。

将 MySQL 模式切换为不使用严格。

SET @@global.sql_mode= 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

错误代码:1406。数据对于列来说太长-MySQL

韩景辉
2023-03-14

将列类型更改为LONGTEXT

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

  • 我试图使用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.

  • 问题内容: 错误代码:1406。数据对于列而言太长 现在一些值 插入记录超过 如果我们的 它显示错误信息 错误代码:1406。数据对于列而言太长 但是我的期望是,我想在表中至少插入前45个字符 如果问题不清楚,请告诉我。 我知道此错误的原因。我正在尝试插入比数据类型长度更多的值。 我想要MySQL中的解决方案,因为它可能在中。所以我希望它也会出现在 MySQL中 。 问题答案: MySQL将截断任

  • 我有我的班级电影: 和我的控制器方法: 我得到一个错误: Servlet.service()的servlet[springDispatcher]在上下文与路径[/web编程]抛出异常[请求处理失败;嵌套异常org.springframework.dao.DataIntegrityViolationException:无法执行语句;SQL[n/a];嵌套异常是org.hibernate.except

  • 问题内容: 我试图将照片插入到MySQL表的BLOB列中,但出现异常: 这是JDBC: 我该如何解决这个问题? 问题答案: 您试图插入的数据大于列允许的数据。 根据需要使用以下数据类型 使用以避免此异常。