MySQL十进制字段的正确默认值是多少?

MySQL十进制字段的正确默认值是多少?,mysql,decimal,default-value,Mysql,Decimal,Default Value,我的MySQL数据库中有一个decimal字段。我将其定义为: 十进制(1,1)无符号NULL。但是我想为它设置一个默认值,比如7.0,这就是我遇到的问题。每当我想设置此值时,都会出现以下错误: Invalid default value ... 我还尝试将其设置为7,0和7,但结果是相同的错误。MySQL十进制字段的正确默认值是多少 注意:我在MySQL中使用Navicat for MySQL,在声明十进制(p,S)时: 精度(p)表示为值存储的有效位数,刻度(S)表示小数点后可存储的位数

我的MySQL数据库中有一个
decimal
字段。我将其定义为:
十进制(1,1)无符号NULL
。但是我想为它设置一个默认值,比如
7.0
,这就是我遇到的问题。每当我想设置此值时,都会出现以下错误:

Invalid default value ...
我还尝试将其设置为
7,0
7
,但结果是相同的错误。MySQL十进制字段的正确默认值是多少


注意:我在MySQL中使用Navicat for MySQL

,在声明十进制(p,S)时:

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

因此,在您的示例中,
DECIMAL(1,1)
表示最多1个数字,并且在点后面最多1个数字。。。这真的没有道理

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

  • 十进制(5,2)
    :5位数字,其中两位用于小数部分。因此,可能的值范围为-999.99到999.99
  • 十进制(5,0)
    :不允许小数部分,因此它相当于一个最大为5位的整数

对于无符号,行为相同,但使用减号将抛出错误。

在十进制列声明中,可以(通常是)指定精度和小数位数;。。。精度表示为值存储的有效位数,刻度表示小数点后可存储的位数。-,换言之,1,1是精度1的刻度1,其大小足以容纳.7,但不是7.0(需要2,1)得到它。我必须将它声明为
DECIMAL(2,1)
才能将
7.0
作为它的默认值。谢谢你的评论。我以前写过,但是我没有注意这里提供的例子。让我们看看给你带来麻烦的陈述。