1366: Incorrect string/integer value for column (valor de cadena/entero incorrecto para la columna)
MySQL¿Qué significa?
Se insertó en una columna un valor incompatible con su tipo o conjunto de caracteres. Suele deberse a una discrepancia de codificación de caracteres o de tipo.
¿Por qué ocurre?
Escribir un emoji/carácter de 4 bytes (utf8mb4) en una columna latin1, introducir texto no numérico en una columna numérica, un charset de conexión incorrecto o enviar un valor de un tipo distinto del esperado.
Cómo solucionarlo
Para problemas de caracteres, convierta la columna/tabla a utf8mb4: ALTER TABLE my_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci y configure el charset de la conexión en utf8mb4. Valide los tipos en la aplicación para los campos numéricos. Recuerde que el servidor funciona en modo SQL estricto (STRICT); la causa raíz es el tipo/codificación de los datos.
Más entradas de este motor
- 1215Cannot add foreign key constraint (no se puede añadir la restricción de clave foránea)
- 1451Cannot delete or update a parent row: a foreign key constraint fails (no se puede eliminar/actualizar la fila padre: falla la restricción de clave foránea)
- 1452Cannot add or update a child row: a foreign key constraint fails (no se puede añadir/actualizar la fila hija: falla la restricción de clave foránea)
- 1044Access denied for user to database (acceso denegado del usuario a la base de datos)
- 1264Out of range value for column (valor fuera de rango para la columna)
- 1052Column 'x' in field list is ambiguous (columna ambigua en la lista de campos)
- 1136Column count doesn't match value count (el número de columnas no coincide con el de valores)