Arreglar los datos se trunca por un error de columna en MySQL

Mehvish Ashiq 20 junio 2023
Arreglar los datos se trunca por un error de columna en MySQL

Este artículo demuestra las posibles razones y soluciones para un error, diciendo que Los datos están truncados para una columna en MySQL.

Arreglar el error Los datos están truncados para una columna en MySQL

Aquí, exploraremos las posibles razones y soluciones para deshacernos de un error que dice MySQL “los datos están truncados para una columna”.

Los datos son demasiado grandes

Hay algunos escenarios en los que tenemos que cargar los datos desde un archivo en lugar de insertarlos manualmente en la tabla MySQL. Durante la carga, puede ocurrir el error Datos truncados para una columna 'nombreColumna' en la fila #. ¿Por qué?

Esto se debe a que los datos proporcionados parecen demasiado grandes para un tipo de datos de la columna de la tabla MySQL. Por ejemplo, tiene una tabla donde un atributo de valor es de tipo texto que solo puede acomodar 65 000 caracteres de los datos proporcionados.

Obtendrá este error cuando inserte datos para la columna valor que supere los 65K.

Para resolver este problema, debe cambiar el tipo que puede aceptar más datos, como MEDIUMTEXT o LONGTEXT, que puede acomodar 16 MB y 4 GB. También puede encontrar algunos consejos de optimización aquí.

También podemos truncar los datos usando SET ANSI_WARNINGS OFF e insertar los registros nuevamente, considerando la longitud máxima del tipo de datos de la columna.

Se pasan datos no válidos

El Código de error: 1265. Datos truncados para la columna 'a' en la fila 1 también ocurre en MySQL si intentamos insertar datos no válidos.

Por ejemplo, tenemos una tabla donde el campo precio es de tipo flotante y acepta los valores NULL. Ver lo siguiente:

#create a table named `prices`
CREATE TABLE prices (ID INT NOT NULL, price FLOAT NULL);
#insert the first record
INSERT prices VALUES (1, '');

Aquí, insertamos una cadena vacía en la columna price, un tipo float que toma valores NULL. Recuerde, NULL y '' no son lo mismo.

Aún así, si intentamos insertar una cadena vacía en una columna que toma valores NULOS, generaría el Código de error: 1265. Datos truncados para la columna 'a' en la fila 1. La solución más simple a este problema es pasar el valor correcto del tipo de datos correcto según lo requiera la columna respectiva de la tabla precio.

Podemos resolverlo especificando los valores NULL explícitamente en lugar de una cadena vacía ('') o ni siquiera escribir los valores para esa columna en particular en la instrucción INSERT. Vea el siguiente fragmento considerando nuestro ejemplo.

INSERT prices VALUES (1, NULL); #insert null explicitly
INSERT prices (ID) VALUES (2); #don't specify values for `price` column

Carácter de terminación incorrecto

Si insertamos cada línea manualmente en la tabla MySQL, todo va bien. El error ocurre cuando intentamos cargar más de una línea a la vez y no obtenemos correctamente el carácter de terminación.

Para resolver esto, debemos verificar el carácter de terminación del archivo y especificarlo en el comando CARGAR de la siguiente manera.

#if the terminating character is `tab`
FIELDS TERMINATED BY '\t'
#if the terminating character is a `comma`
FIELDS TERMINATED BY ','
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Artículo relacionado - MySQL Error