我在一个Decimal(10,2)字段中存储一个运行总数,并在处理项目时添加到它。
update foo set bar = bar + '3.15‘
大约20%的时间发出警告"Data truncated for column 'bar‘at row 4“
如果更新值未加引号,则永远不会发出此警告。十进制值应该加引号吗?
发布于 2010-04-01 16:45:35
当然不是。
整数和浮点数不是字符串,不应该用引号括起来。只有MySQL甚至允许用引号括起来。
发布于 2010-04-01 16:54:52
您添加的值是否可能超出了Decimal(10,2)的限制
例如。
update foo set bar = bar + '3.149999'将导致“Data truncated”警告,因为该字段只能存储小数点右侧的2位数字(而不是6位)。
发布于 2010-04-01 16:45:43
不,十进制值是按原样指定的。如果您引用它们,它将解释为varchar。
https://stackoverflow.com/questions/2559127
复制相似问题