Bueno, ese es el problema, el tipo de datos. Según los documentos :
La sintaxis de declaración para una columna DECIMAL es DECIMAL(M,D). Los rangos de valores para los argumentos en MySQL 5.6 son los siguientes:
M es el número máximo de dígitos (la precisión). Tiene un rango de 1 a 65. (Las versiones anteriores de MySQL permitían un rango de 1 a 254).
D es el número de dígitos a la derecha del punto decimal (la escala). Tiene un rango de 0 a 30 y no debe ser mayor que M.
Entonces tu DECIMAL(5,2)
el tipo de columna puede contener números hasta 999.99
. Tendrás que modificar la tabla y agrandar la columna.
(En cuanto a por qué MySQL prefiere corromper sus datos en lugar de informarlos, bueno, esa ha sido su filosofía desde los primeros años. Puede jugar con Modos SQL para arreglar eso.)