MySQL - UNSIGNED

 
Vista:
sin imagen de perfil

UNSIGNED

Publicado por Lorena (1 intervención) el 03/01/2023 23:33:14
Mi consulta sobre unsigned que se emplea para no poder ingresar valores a mi tabla.
estoy empleando la restricción unsigned a mi tabla pero al momento de ingresar valor negativo a mi campo que tiene unsigned este me guarda la información pero como un valor 0 mi duda es por que no me genera error al momento de ingresar números negativos se supone que debe salirle a uno error por no cumplir con la restricción.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Claudio Nipotti

UNSIGNED

Publicado por Claudio Nipotti (4 intervenciones) el 06/03/2023 16:13:23
Es por el modo de funcionamiento de MySQL, que es controlado por la variable SQL_MODE.

La variable SQL_MODE produce variaciones bastante importantes en la forma de funcionamiento de MySQL, una es la que describes: que ante errores de rango se genere un error o solamente una advertencia y se fuerce el valor guardado para que encaje en el rango.

Antes de tu consulta prueba con el comando:

1
set sql_mode='TRADITIONAL';

Y verás que se produce el error esperado. Si tienes acceso al fichero my.ini podrías modificar el comportamiento en forma permanente.

En cambio, el comando

1
set sql_mode='';

cancelará cualquier modo elegido.

Esta respuesta en realidad es demasiado breve e incompleta; me gustaría preparar algo mejor. Por lo pronto la pista es: SQL_MODE

(Por cierto, UNSIGNED está obsoleto desde la versión 8.0.17 de MySQL. En su lugar debe usarse una restricción CHECK.)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar