在开发过程中,mysql的amount字段一开始设置成decimal(10,0),后面需要引入2位小数,改成decimal(10,2),后来又改成decimal(10,4),然后有一天,在存入1,000,000这个数字的时候,报错了:
Data truncation: Out of range value for column 'amount'
检查后发现,decimal(10,4)所表示的意思是:10表示总共的数据位长度,包含小数;4表示小数点后4位。也就是说,这个amount字段现在最多只能存6位长度的整数(最大能够存储的数字是999,999.9999),所以100W这个数字超过了字段能存储的位数。