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

[SOLUCIONADO] ¿evitar insercion campo vacio en mysql?

Estas en el tema de ¿evitar insercion campo vacio en mysql? en el foro de Bases de Datos General en Foros del Web. es posible evitar directamente desde mysql , que inserten un valor vacio. Por ejemplo, si yo le coloco null, al enviar el campo vacio me ...
  #1 (permalink)  
Antiguo 10/04/2014, 00:22
 
Fecha de Ingreso: octubre-2006
Mensajes: 227
Antigüedad: 18 años
Puntos: 3
Pregunta ¿evitar insercion campo vacio en mysql?

es posible evitar directamente desde mysql, que inserten un valor vacio.

Por ejemplo,

si yo le coloco null, al enviar el campo vacio me coloca null,

y al colocarle como not null, al enviarle el campo vacio coloca como una cadena sin espacios

Mi consulta es, si es posible evitar la insercion de ese registro, por ejemplo que salga un error propio de mysql. O derechamente ¿eso no lo hace mysql?. Lo pregunto porque he buscado pero no he encontrado si se puede o no.
  #2 (permalink)  
Antiguo 10/04/2014, 04: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: 17 años
Puntos: 2658
Respuesta: ¿evitar insercion campo vacio en mysql?

Cita:
y al colocarle como not null, al enviarle el campo vacio coloca como una cadena sin espacios
Eso sucede cuando el programador mete la pata y en lugar de poner NULL en el insert, pone ''.
Código SQL:
Ver original
  1. INSERT INTO tabla(a, b, c)
  2. VALUES (1, 'esto', '')
Un espacio vacío no es un NULL, es una cadena vacía, y en SQL son cosas diferentes.
Código SQL:
Ver original
  1. INSERT INTO tabla(a, b, c)
  2. VALUES (1, 'esto', NULL)

Cuidado, no es lo mismo poner:
Código SQL:
Ver original
  1. INSERT INTO tabla(a, b, c)
  2. VALUES (1, 'esto', NULL)
que poner
Código SQL:
Ver original
  1. INSERT INTO tabla(a, b, c)
  2. VALUES (1, 'esto', 'NULL')
Este segundo caso no es un NULL, es una cadena de texto que dice "NULL".

El problema lo debes resolver donde creas la query del INSERT, y validar los datos que existan. Cuando no haya datos para el campo, si el campo lo permite, se debe poner NULL y no ese espacio vacío, o bien omitir el valor que no existe (esto implica programar mejor para construir las inserciones dinámcias).
Código SQL:
Ver original
  1. INSERT INTO tabla(a, b)
  2. VALUES (1, 'esto')
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: sql
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 14:38.