MySQL出现该错误提示:

 Data too long for column 'data' at row 1

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层的数据结构也进行修改;