我的MySQL数据库中有一个decimal
字段。我把它定义为:
decimal(1,1) UNSIGNED NULL
。但是我想像7.0
那样为它设置一个默认值,这就是我遇到的问题。每当我想设置这个值时,我都会收到这个错误:
Invalid default value ...
我还尝试将其设置为7,0
和7
,但却产生了相同的错误。 MySQL十进制字段的正确默认值是什么?
注意:我正在使用Navicat for MySQL
答案 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
时,行为相同,但使用减号会引发错误。