Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/11/2012, 16:50
Avatar de gnzsoloyo
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
Respuesta: Mysql not null NO Funciona

Primero: El warning que te indica como resultado es precisamente el rechazo del INSERT.
Segundo: La consulta que haces está mal si lo que deseas es obtener el registro donde esa columna contiene NULL, porque un espacio vacío no es un NULL. Un NULL es una indeterminación de estado y no un dato, por lo que no funciona un "=" para encontrarlo. La consulta correcta debería ser:
Código MySQL:
Ver original
  1. from ge_tnull
  2. where null_nomb IS NULL;

Ahora bien, si compruebo tus mismas sentencias con esto, tendría:
Código MySQL:
Ver original
  1. mysql> DROP TABLE IF EXISTS ge_tnull;
  2. Query OK, 0 rows affected (0.19 sec)
  3.  
  4. mysql> create table ge_tnull
  5.     -> (null_null int not null auto_increment,
  6.     -> null_nomb varchar(20) not null,
  7.     -> null_apel varchar(20),
  8.     -> null_nume int not null,
  9.     -> constraint pk_ge_tnull primary key (null_null)
  10.     -> );
  11. Query OK, 0 rows affected (0.00 sec)
  12.  
  13. mysql> insert into ge_tnull(null_nomb, null_apel, null_nume)
  14.     -> values('juan', 'gomes', 3);
  15. Query OK, 1 row affected (0.00 sec)
  16.  
  17. mysql> select * from ge_tnull;
  18. +-----------+-----------+-----------+-----------+
  19. | null_null | null_nomb | null_apel | null_nume |
  20. +-----------+-----------+-----------+-----------+
  21. |         1 | juan      | gomes     |         3 |
  22. +-----------+-----------+-----------+-----------+
  23. 1 row in set (0.00 sec)
  24.  
  25. mysql> insert into ge_tnull (null_nume)
  26.     -> values(3);
  27. ERROR 1364 (HY000): Field 'null_nomb' doesn''t have a default value
  28. mysql> select *
  29.     -> from ge_tnull
  30.     -> where null_nomb = ' ' ;
  31. Empty set (0.00 sec)
  32.  
  33. mysql> select *
  34.     -> from ge_tnull
  35.     -> where null_nomb IS NULL;
  36. Empty set (0.00 sec)
  37.  
  38. mysql>
  39. mysql> select *
  40.     -> from ge_tnull;
  41. +-----------+-----------+-----------+-----------+
  42. | null_null | null_nomb | null_apel | null_nume |
  43. +-----------+-----------+-----------+-----------+
  44. |         1 | juan      | gomes     |         3 |
  45. +-----------+-----------+-----------+-----------+
  46. 1 row in set (0.00 sec)
Como puedes ver, no existe en la tabla más que el registro ingresado al principio.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)