Что означает тип данных/поля DECIMAL (MySql)?

Задаю поле в БД - my_value DECIMAL(11,10). Нужно хранить значения вида 123456789.1234567890
Как я понимаю, в этом поле должно хранится значение с 11 цифрами целой части и 10 дробной.
Но это, разумеется не так. Дробная часть хранится, но вот целая нет.
Что вообще означают числа в этой записи DECIMAL(11,10)?
И почему запись вида DECIMAL(9,10) вызывает ошибку
Ошибка запроса: #1427 - For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column 'coin_value').
PS

Спонсор глупых вопросов не понятные мануалы

salary DECIMAL(5,2)
В этом примере - 5 (точность) представляет собой общее количество (а есть не общее?) значащих десятичных знаков (значащих знаков? масло масленое?), с которыми будет храниться данная величина (а может и не храниться?), а цифра 2 (масштаб) задает количество десятичных знаков после запятой (ну хоть это понятно).
  • Вопрос задан
  • 24606 просмотров
Решения вопроса 1
qonand
@qonand
Software Engineer
DECIMAL(X,Y)
X - общее количество знаков в числе (с учетом дробной части)
Y - количество знаков в дробной части
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Melkij
@Melkij
PostgreSQL DBA
общее количество (а есть не общее?)

да есть - число знаков после запятой.

с которыми будет храниться данная величина (а может и не храниться?)

Да, может не храниться. В частности - отбрасываться, округляться или выдавать ошибку переполнения.

Как я понимаю, в этом поле должно хранится значение с 11 цифрами целой части и 10 дробной.

Нет.
11 знаков есть всего, из них 10 - для дробной части.

И почему запись вида DECIMAL(9,10) вызывает ошибку

Потому что число знаков после запятой не может быть больше общего числа знаков.
Ответ написан
Комментировать
К примеру в Rails есть вариант определения кол-во целых чисел, кол-во дробных чисел после запятой, общее кол-во чисел вводимого числа на основе MySql:
precision - определяет количество цифр в числе до запятой
scale - определяет количество цифр в числе после запятой
decimal - определяет общее количество цифр в числе
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
21 нояб. 2024, в 19:31
500 руб./за проект
21 нояб. 2024, в 19:28
200000 руб./за проект
21 нояб. 2024, в 19:09
5000 руб./за проект