数据库
首页 > 数据库> > MySQL十进制字段的正确默认值是什么?

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

作者:互联网

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

Invalid default value ...

我也尝试将其设置为7,0和7,但它导致了同样的错误. MySQL十进制字段的正确默认值是什么?

注意:我正在使用Navicat for MySQL

解决方法:

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

The precision (P) represents the number of significant digits that are stored for values, and the scale (S) represents the number of digits that can be stored following the decimal point.

所以在你的例子中,DECIMAL(1,1)意味着最多1位数,最多1位数点后…这没有多大意义.

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

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

使用UNSIGNED时,行为是相同的,但使用减号将引发错误.

标签:mysql,decimal,default-value
来源: https://codeday.me/bug/20190910/1799565.html