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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值