MySQL:Data too long for column 'data' at row 1
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 类型的存储限制
你的 data
是 BLOB
,最大只能存储 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层的数据结构也进行修改;