Out of range value for column ""

今天同事在初始化数据时,在初始手机号遇到如下报错

 


 我实体类的字段如下

@Column
@Comment("购车人手机号")
@ColDefine(type = ColType.VARCHAR, width = 20)
private String customerPhone;

插入的sql如下

ALTER TABLE `order_after_main`
ADD COLUMN `customerPhone`  int(32) NULL DEFAULT 0 COMMENT '购车人手机号' ;

此刻相信眼尖的同志已经发现原因了,原因即:我实体类的字段类型为vachar,而sql的类型为int,而初始化来的手机号为11位数字,而mysql int数据范围 是 -200000搜索0000 to 2000000000,11位的手机号显然已经超出int数据范围,故插数据时报了“超过数据范围”的错。

总结:首先我误写了sql,没有将sql的字段类型与实体类的字段类型对应,然后sql的字段类型又未满足数据范围长度,而我将sql中的数据类型改为vachaer,并给予32的长度问题即解决,总之,写sql一定要用心,工作不能马虎。检讨一下自己,切切之。

posted @ 2017-11-08 10:27  何年何月生  阅读(4213)  评论(0编辑  收藏  举报