表中有一字段“进价”,保留的小数点两位,信息如下:
in_price decimal(10,2) DEFAULT NULL COMMENT ‘进价’;
现在需要更改成精确到小数点六位。涉及到以下几点,做个总结:
1、mysql修改字段长度
语句:alter table 表名 modify column 字段名 类型;
示例:
alter table po_detail modify column in_price decimal(14,6) default null comment ‘进价’;
加上 comment ‘进价’ 是防止执行语句后原字段的备注被更新没了。
而decimal(10,2)为什么要改成decimal(14,6)就要了解mysql中decimal类型的用法了。
2、mysql字段类型decimal说明
decimal(m,d)中两个参数,m:字符总长度,d:小数点位数
如decimal(10,2)表示这样长度的数字:0000000.00
总长度10,小数点“.”占一位长度,小数点后两位小数占两位长度,小数点前的最大长度只有7位
字段的原长度为decimal(10,2),小数点前最大的整数是7位
那么,改成精确到小数点后6位,小数点前的最大整数长度应保持不变还是7位,加上一个小数点“.”,再加上六位小数,长度总共是14,所以改成decimal(14,6)