Какое правильное значение по умолчанию для десятичного поля MySQL? - PullRequest
0 голосов
/ 10 июня 2018

В моей базе данных MySQL есть поле decimal.Я определил это так: decimal(1,1) UNSIGNED NULL.Но я хотел бы установить для него значение по умолчанию, например 7.0, и это проблема, которая у меня есть.Всякий раз, когда я хочу установить это значение, я получаю эту ошибку:

Invalid default value ...

Я также пытался установить его как 7,0 и 7, но это приводило к той же ошибке.Какое правильное значение по умолчанию для десятичного поля MySQL?

Примечание. Я использую Navicat для MySQL

1 Ответ

0 голосов
/ 10 июня 2018

В MySQL при объявлении DECIMAL(P,S):

Точность (P) представляет количество значащих цифр, которые сохраняются для значений, а шкала (S) представляет количество цифр, которыеможет храниться после десятичной точки.

Итак, в вашем примере DECIMAL(1,1) означает не более 1 цифры и не более 1 цифры после точки ... что на самом деле не имеет смысла.

Чтобы лучше понять, вот еще несколько примеров:

  • DECIMAL(5,2): 5 цифр, две из которых используются для дробной части.Следовательно, возможные значения находятся в диапазоне от -999,99 до 999,99
  • DECIMAL(5,0): дробная часть не допускается, поэтому она эквивалентна целому числу максимум 5 цифр.

С UNSIGNEDповедение такое же, но использование знака минус приведет к ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...