MySQL十进制字段的正确默认值是什么?

时间:2018-06-10 07:17:02

标签: mysql decimal default-value

我的MySQL数据库中有一个decimal字段。我把它定义为: decimal(1,1) UNSIGNED NULL。但是我想像7.0那样为它设置一个默认值,这就是我遇到的问题。每当我想设置这个值时,我都会收到这个错误:

Invalid default value ...

我还尝试将其设置为7,07,但却产生了相同的错误。 MySQL十进制字段的正确默认值是什么?

注意:我正在使用Navicat for MySQL

1 个答案:

答案 0 :(得分:1)

在MySQL中,声明DECIMAL(P,S)时:

  

精度(P)表示为值存储的有效位数,刻度(S)表示小数点后可存储的位数。

因此,在您的示例中,DECIMAL(1,1)表示最多1个数字,最多1个数字后点...这实际上没有意义。

为了更好地理解,这里有更多例子:

  • DECIMAL(5,2):5位数,其中两位用于小数部分。因此,可能的值范围为-999.99至999.99
  • DECIMAL(5,0):不允许小数部分,因此相当于最多5位数的整数。

使用UNSIGNED时,行为相同,但使用减号会引发错误。