Data too long for column ‘importantLevel’ at row 1
问题出现在ssm框架中,往mysql数据库中插入数据的情况。当时先执行的是下面的SQL生成表,然后往表里插入数据。
DROP TABLE IF EXISTS `consumption_index_year`;
CREATE TABLE `consumption_index_year` (
`code` VARCHAR(20) NOT NULL COMMENT '代码',
`lastValue` DOUBLE NOT NULL COMMENT '去年度值汇总(前年值)',
`year` VARCHAR(25) NOT NULL COMMENT '年份',
`indexName` VARCHAR(25) NOT NULL COMMENT '指标名称',
`indexUnit` VARCHAR(25) NOT NULL COMMENT '指标单位',
`companyreportid` VARCHAR(50) NOT NULL COMMENT '报告id',
`orgId` VARCHAR(50) NOT NULL COMMENT '组织机构ID',
`companyperiodreportstatusid` VARCHAR(50),
`energyConsumptionIndexId` VARCHAR(50),
`id` VARCHAR(20),
`fullname` VARCHAR(50)NOT NULL COMMENT '公司名称',
`region` VARCHAR(30) NOT NULL COMMENT '区域名称',
`currentValue` DOUBLE NOT NULL COMMENT '本年度值汇总(去年值)',
`indexCurrent` DOUBLE NOT NULL COMMENT '指标1(本年度,去年)',
`indexLast` DOUBLE NOT NULL COMMENT '指标4(去年,前年)',
`status` VARCHAR(30) NOT NULL COMMENT '上报状态',
`importantLevel` VARCHAR(15) NOT NULL COMMENT '重点类型',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
然后报错报的字段是importantLevel。经过检查发现importantLevel的字段的值在一些情况下可能比15长,然后把importantLevel
VARCHAR(15)长度改大一点,改成importantLevel
VARCHAR(50)。然后再存取数据就正常了。
友情提示:字段的长度可以设置的稍微大点,我已经遇到过两次因为字段长度的问题导致存数据失败的情况了。