What is the correct default value for a MySQL decimal field?

白昼怎懂夜的黑 提交于 2019-12-23 16:19:54

问题


I have a decimal field in my MySQL database. I have defined it as this: decimal(1,1) UNSIGNED NULL. But I would like to set a default value for it like 7.0, and this is the problem I have. Whenever I want to set this value, I get this error:

Invalid default value ...

I also tried to set it as 7,0 and 7 but it resulted the same error. What is the correct default value for a MySQL decimal field?

Note: I am using Navicat for MySQL


回答1:


In MySQL, when declaring 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.

So in your example, DECIMAL(1,1) means at most 1 digit, and at most 1 digit after the dot... which doesn't really make sense.

To better understand, here are more examples:

  • DECIMAL(5,2): 5 digits, two of them being used for the fractional part. Hence, possible values range from -999.99 to 999.99
  • DECIMAL(5,0): no fractional part allowed, so it is equivalent to an integer with maximum 5 digits.

With UNSIGNED, the behavior is the same, but using a minus sign will throw an error.



来源:https://stackoverflow.com/questions/50781420/what-is-the-correct-default-value-for-a-mysql-decimal-field

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!