Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Por qué puedo insertar registros con campos vacios si están definidos como NOT NULL?

Estas en el tema de Por qué puedo insertar registros con campos vacios si están definidos como NOT NULL? en el foro de Mysql en Foros del Web. Hola a todos, Tengo una tabla definida con campos NOT NULL para forzar al usuario a que meta valores. Sin embargo, si en un INSERT ...
  #1 (permalink)  
Antiguo 07/12/2007, 14:44
 
Fecha de Ingreso: agosto-2007
Mensajes: 237
Antigüedad: 16 años, 8 meses
Puntos: 1
Por qué puedo insertar registros con campos vacios si están definidos como NOT NULL?

Hola a todos,

Tengo una tabla definida con campos NOT NULL para forzar al usuario a que meta valores.

Sin embargo, si en un INSERT omito estos campos para comprobar que efectivemente me da un error, en los campos NOT NULL el gestor introduce el valor "" y no me dá error, sino que, simplemente, me da un Warning indicándome que los campos NOT NULL no tienen un valor DEFAULT definido

....es normal?


Un saludo a todos.
  #2 (permalink)  
Antiguo 07/12/2007, 16:06
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
De acuerdo Re: Por qué puedo insertar registros con campos vacios si están definidos como NOT N

Saludos

Si es normal la validacion como tal de campos vacios tienes que hacerla directamente desde programacion.

Hasta Pronto!
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 08/12/2007, 02:56
 
Fecha de Ingreso: agosto-2007
Mensajes: 237
Antigüedad: 16 años, 8 meses
Puntos: 1
Re: Por qué puedo insertar registros con campos vacios si están definidos como NOT N

Muchas gracias por tu respuesta Nano,

Etonces.....¿Cuál es el sentido de poner un campo como NOT NULL?¿Para qué vale?


Un saludo.
  #4 (permalink)  
Antiguo 10/12/2007, 07:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Re: Por qué puedo insertar registros con campos vacios si están definidos como NOT N

Se hace, entre otras cosas para evitar que ingresen valores nulos en campos usados como claves (primary key), los cuales DEBEN contener datos o el registro carecerá de valor dando lugar a inconsistencias y falta de integridad en la base completa.
Imaginate si quisieras ingresar un registro con una clave externa (perteneciente a otra tabla,a su vez PK en su propio domonio), que forzozamente tiene que existir, pero que no colocas nada. ¿Cómo hace MySQL para relacionarlos? ¿Cómo se integraría a un índice?
Habitualmente uno define como NOT NULL campos que SABE que son obligatorios, para forzar al usuario a ingresar correctamente los datos.
  #5 (permalink)  
Antiguo 10/12/2007, 08:17
 
Fecha de Ingreso: agosto-2007
Mensajes: 237
Antigüedad: 16 años, 8 meses
Puntos: 1
Re: Por qué puedo insertar registros con campos vacios si están definidos como NOT N

Ahora entiendo el sentido y su utilidad.

Muchísimas gracias por tu respuesta, gnzsoloyo.
  #6 (permalink)  
Antiguo 14/12/2007, 16:05
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años
Puntos: 4
Re: Por qué puedo insertar registros con campos vacios si están definidos como NOT N

lamento contradecir, simplemente NULL no es igual '' null es inexistencia, y cuando tu le dices que guarde '' pues aunque no lo creas hay caracteres no imprimible que si estan presentes por eso para saber si es null preguntas si es NULL el dato no le preguntas si campo='' espero te halla quedado claro
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.
  #7 (permalink)  
Antiguo 15/12/2007, 05:11
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Re: Por qué puedo insertar registros con campos vacios si están definidos como NOT N

Técnicamente, NULL es un caracter, que define la inexistencia de todo dato comparable, incluyendo caracteres reservados y de control. Es también comparable sólo consigo mismo y toda operación matemática hecha con un valor NULL devuelve NULL.
A nivel de consultas, null es utilizado no sólo para definir el estado de vacuindad de un campo (estado que no es '', sino NULL), sino para obtener resultados definidos en ciertas consultas.
Por ejemplo: Un matching hecho por LEFT JOIN puede ser usados para obtener las tuplas de una tabla que no coincidan con ninguna de las de la segunda tabla.
  #8 (permalink)  
Antiguo 15/12/2007, 14:19
 
Fecha de Ingreso: agosto-2007
Mensajes: 237
Antigüedad: 16 años, 8 meses
Puntos: 1
Re: Por qué puedo insertar registros con campos vacios si están definidos como NOT N

Muchas gracias a los por aportarme más información.

Un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:49.