Cóż, to jest problem, typ danych. Zgodnie z dokumentacją :
Składnia deklaracji dla kolumny DECIMAL to DECIMAL(M,D). Zakresy wartości argumentów w MySQL 5.6 są następujące:
M to maksymalna liczba cyfr (precyzja). Ma zakres od 1 do 65. (Starsze wersje MySQL dopuszczały zakres od 1 do 254.)
D to liczba cyfr na prawo od przecinka dziesiętnego (skala). Ma zakres od 0 do 30 i nie może być większy niż M.
Więc twój DECIMAL(5,2)
typ kolumny może zawierać liczby do 999.99
. Będziesz musiał zmienić tabelę i powiększyć kolumnę.
(Jeśli chodzi o to, dlaczego MySQL woli niszczyć dane zamiast je zgłaszać, cóż, taka była jego filozofia od wczesnych lat. Możesz pobawić się Tryby SQL by to naprawić.)