MySQL:Data too long for column 'data' at row 1

MySQL出现该错误提示:

 Data too long for column 'data' at row 1

出现该错误的原因是: 数据库中,输入的数据量 大于 数据表中字段的 数据结构大小造成的。

1,后端限制字符大小进行提示

2,扩充数据库表中字段的大小

以下解决方案为: 扩充数据库表中字段的大小,这样子是为了方便展示更多数据给用户。

1,检查表

show tables;

2,检查表结构

SHOW CREATE TABLE 表名;

这里表名 替换为 自己的表名

示例表 结构

---------------------+
| Table | Create Table |

+------------+------------------------------------------------------------------

| 表名 | CREATE TABLE 表结构 (

name varchar(255) COLLATE utf8mb4_bin NOT NULL,

data blob,

version bigint DEFAULT NULL,

PRIMARY KEY name)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin |

提示出错的 data ,数据结构为 blob

BLOB 类型的存储限制

BLOB 类型

最大存储大小

TINYBLOB

255 字节

BLOB

65,535 字节 (64KB)

MEDIUMBLOB

16,777,215 字节 (16MB)

LONGBLOB

4,294,967,295 字节 (4GB)

你的 dataBLOB最大只能存储 64KB 数据,如果你插入的内容超过 64KB,就会报 Data too long for column 'data' 错误。

修改表的数据大小:

ALTER TABLE 表名 MODIFY COLUMN data LONGBLOB;

再次查看表结构:

SHOW CREATE TABLE 表名;

输出结果:

-------------------------+
| Table | Create Table |

+------------+--------------------------------------------------------------------------------------------------------+

| extensions | CREATE TABLE extensions (

name varchar(255) COLLATE utf8mb4_bin NOT NULL,

data longblob,

version bigint DEFAULT NULL,

PRIMARY KEY name)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin |

表名数据结构已修改。

补充:如果代码编写有限制大小,尤其是entity层,需要将entity层的数据结构也进行修改;

Comment

华计科技: 中华自主研发设计

华计科技为您提供咨询服务,IT技术支持和项目开发: (+86) 156 2654 0671

联系我们