问题出现在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)。然后再存取数据就正常了。
友情提示:字段的长度可以设置的稍微大点,我已经遇到过两次因为字段长度的问题导致存数据失败的情况了。