Saltar al contenido

“ERROR 1406: 1406: Datos demasiado largos para la columna”, pero ¿no debería ser así?

Es imprescindible interpretar el código correctamente previamente a utilizarlo a tu proyecto si tdeseas aportar algo puedes dejarlo en los comentarios.

Solución:

isadmin es una columna de tipo bit y está almacenando un valor de tipo varchar en ella que es de mayor tamaño que bit. modifique la consulta de la siguiente manera: –

UPDATE `tblusers` SET `IsAdmin`=b'1'  WHERE `UserID`='79';

IsAdmin tiene el tipo de datos de bit (1), pero está asignando el string ‘1’ a él. Indique que le está asignando un valor de bit precediendo el ‘1’ con b o use el formato 0b:

UPDATE `tblusers` SET `IsAdmin`=b'1'  WHERE `UserID`='79';

o

UPDATE `tblusers` SET `IsAdmin`=0b1  WHERE `UserID`='79';

La razón de este comportamiento es probablemente que la configuración de strict_all_tables o strict_trans_tables está habilitada en el servidor mysql v5.7:

El modo estricto controla cómo MySQL maneja los valores no válidos o faltantes en declaraciones de cambio de datos como INSERTAR o ACTUALIZAR. Un valor puede no ser válido por varias razones. Por ejemplo, podría tener un tipo de datos incorrecto para la columna o podría estar fuera de rango. Falta un valor cuando una nueva fila que se va a insertar no contiene un valor para una columna no NULL que no tiene una cláusula DEFAULT explícita en su definición. (Para una columna NULL, se inserta NULL si falta el valor). El modo estricto también afecta a las declaraciones DDL como CREATE TABLE.

Si sostienes algún recelo o capacidad de refinar nuestro tutorial te invitamos escribir una crítica y con deseo lo observaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *