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

Moh*_*eri 5 mysql decimal default-value

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

Invalid default value ...
Run Code Online (Sandbox Code Playgroud)

我也尝试将其设置为7,07但它导致了同样的错误。MySQL十进制字段的正确默认值是多少?

注意:我使用 Navicat for MySQL

Der*_*lin 5

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

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

所以在你的例子中,DECIMAL(1,1)意味着最多 1 位数字,并且点后最多 1 位数字......这实际上没有意义。

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

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

对于UNSIGNED,行为是相同的,但使用减号会引发错误。