Е, това е проблемът, типът данни. Съгласно документите :
Синтаксисът на декларацията за колона DECIMAL е DECIMAL(M,D). Диапазоните от стойности за аргументите в MySQL 5.6 са както следва:
M е максималният брой цифри (прецизността). Той има диапазон от 1 до 65. (По-старите версии на MySQL позволяваха диапазон от 1 до 254.)
D е броят на цифрите вдясно от десетичната запетая (скалата). Той има диапазон от 0 до 30 и не трябва да е по-голям от M.
Така че вашият DECIMAL(5,2)
тип колона може да съдържа числа до 999.99
. Ще трябва да промените таблицата и да направите колоната по-голяма.
(Що се отнася до това защо MySQL предпочита да повреди вашите данни, вместо да ги докладва, добре, това е неговата философия от ранните години. Можете да играете с SQL режими за да поправите това.)