1406: Data too long for column (datos demasiado largos para la columna)
MySQL¿Qué significa?
Se escribió un valor más largo que la longitud máxima definida de la columna. Por ejemplo, una cadena de 20 caracteres no cabe en una columna VARCHAR(10).
¿Por qué ocurre?
Ancho de columna demasiado pequeño para los datos; caracteres de un conjunto multibyte (utf8mb4) que ocupan más espacio del esperado; el resultado de una concatenación que crece en longitud; modo SQL estricto activo (de lo contrario el valor se trunca silenciosamente).
Cómo solucionarlo
Amplíe la columna: ALTER TABLE my_table MODIFY my_column VARCHAR(255); Para contenido muy largo, considere el tipo TEXT. Si hay que acortar el valor, recórtelo en la aplicación o con SUBSTRING. Encuentre la fila que desborda: SELECT * FROM my_table WHERE CHAR_LENGTH(my_column) > 10; Añada validación de entrada.
Más entradas de este motor
- 1136Column count doesn't match value count (el número de columnas no coincide con el de valores)
- 1048Column 'x' cannot be null (la columna no puede ser nula)
- 1292Incorrect datetime value / truncated incorrect value (valor de fecha/hora incorrecto / valor truncado)
- 1071Specified key was too long; max key length is 767 bytes (clave demasiado larga; máximo 767 bytes)
- 1050Table already exists (la tabla ya existe)
- 1051Unknown table 'x' (tabla desconocida)
- 1091Can't DROP 'x'; check that column/key exists (no se puede hacer DROP; compruebe que existe la columna/clave)