今天同事在初始化数据时,在初始手机号遇到如下报错:
我实体类的字段如下:
@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数据范围 是 -2000000000 to 2000000000,11位的手机号显然已经超出int数据范围,故插数据时报了“超过数据范围”的错。
总结:首先我误写了sql,没有将sql的字段类型与实体类的字段类型对应,然后sql的字段类型又未满足数据范围长度,而我将sql中的数据类型改为vachaer,并给予32的长度问题即解决,总之,写sql一定要用心,工作不能马虎。检讨一下自己,切切之。