mysql - #1265 datos truncados para columna id en la línea 1
¿Datos truncados por columna? (4)
Sin embargo, ¿aparece un error que no tiene sentido ya que el tipo de datos de la columna se modificó correctamente?
| Level | Code | Msg | Warn | 12 | Data truncated for column ''incoming_Cid'' at row 1
A menudo puede recibir este mensaje cuando está haciendo algo como lo siguiente:
REPLACE INTO table2 (SELECT * FROM table1);
Resultó en nuestro caso en el siguiente error:
SQL Exception: Data truncated for column ''level'' at row 1
El problema resultó ser una desalineación de la columna que resultó en un tinyint
intento de almacenamiento en un campo de datetime
y datetime
o viceversa.
Después de cambiar el tipo de datos de una columna MySql para almacenar los identificadores de llamadas Twilio (34 cadenas de caracteres), trato de cambiar manualmente los datos en esa columna con
update calls
set incoming_Cid=''CA9321a83241035b4c3d3e7a4f7aa6970d''
where id=''1'';
Sin embargo, ¿aparece un error que no tiene sentido ya que el tipo de datos de la columna se modificó correctamente?
| Level ||| Code | Message
| Level ||| Code | Message
| Warning | 1265 | Data truncated for column ''incoming_Cid'' at row 1
| Warning | 1265 | Data truncated for column ''incoming_Cid'' at row 1
Al emitir esta declaración:
ALTER TABLES call MODIFY incoming_Cid CHAR;
... omitiste el parámetro de longitud. Por lo tanto, su consulta fue equivalente a:
ALTER TABLE calls MODIFY incoming_Cid CHAR(1);
Debe especificar el tamaño del campo para tamaños mayores que 1:
ALTER TABLE calls MODIFY incoming_Cid CHAR(34);
Su problema es que en el momento su columna incoming_Cid
define como CHAR(1)
cuando debería ser CHAR(34)
.
Para solucionar esto, simplemente emita este comando para cambiar la longitud de sus columnas de 1 a 34
ALTER TABLE calls CHANGE incoming_Cid incoming_Cid CHAR(34);
Aquí está la demostración de SQLFiddle
Tuve el mismo problema debido a una columna de la tabla que se definió como ENUM (''x'', ''y'', ''z'') y más tarde intenté guardar el valor ''a'' en esta columna, por lo que obtuve el mencionado error.
Se soluciona modificando la definición de la columna de la tabla y el valor agregado ''a'' en el conjunto de enumeración.