一:问题描述
今天有同事反馈往一个text数据类型的列上插入数据时,插入失败。
示例:
INSERT INTO t(ftime,content) VALUES(SYSDATE(),REPEAT('你好',20000))
二:出错原因
① sql_mode包含STRICT_TRANS_TABLES配置
当要插入的数据跟列的数据类型不匹配或者要插入的数据比数据类型大,会被截断时,就会报错,无法插入。
② text数据类型的列也是有长度限制的,大小不能超过65535个字节。
三:解决办法
将text数据类型变为mediumtext类型。
示例:
alter table cle modify `Content` mediumtext COLLATE utf8_unicode_ci COMMENT '初核报告摘要';
--常见的几个数据类型允许的最大大小