Ver Mensaje Individual
  #16 (permalink)  
Antiguo 10/01/2015, 16:42
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: Campo NOT NULL con Default Value en NULL

Cita:
Hice ese primer insert en el MySql query browser que ocupo y lo inserta, pero me deja el siguiente mensaje:
Ajá... ¿y estás realmente seguro de que lo inserta?

Ese mensaje precisamente aparece cuando no se pudo insertar al violar una constraint de NOT NULL.

Mira, vamos de nuevo:
Código MySQL:
Ver original
  1. mysql> DROP TABLE IF EXISTS pedidos;
  2. Query OK, 0 rows affected (0.00 sec)
  3.  
  4. mysql>
  5. mysql> CREATE TABLE IF NOT EXISTS `pedidos` (
  6.     ->        `cod_cliente` int(10) unsigned NOT NULL AUTO_INCREMENT,
  7.     ->        `razon_social` varchar(200) NOT NULL,
  8.     ->        `tal_pedido` varchar(45) DEFAULT NULL,
  9.     ->        `nro_pedido` int(45) NOT NULL,
  10.     ->        `fech_pedido` varchar(45) NOT NULL,
  11.     ->        `nro_o_comp` varchar(45) DEFAULT NULL,
  12.     ->        `cod_articulo` int(11) NOT NULL,
  13.     ->        `descripcion` varchar(45) NOT NULL,
  14.     ->        `desc_adici` varchar(45) DEFAULT NULL,
  15.     ->        `unidad` varchar(45) NOT NULL,
  16.     ->        `cant_pedid` int(11) NOT NULL,
  17.     ->        `can_pendes` varchar(45) DEFAULT NULL,
  18.     ->        `can_penfac` varchar(45) DEFAULT NULL,
  19.     ->        `imp_pendie` varchar(45) DEFAULT NULL,
  20.     ->        `estado` varchar(45) DEFAULT NULL,
  21.     ->        `motivo` varchar(45) DEFAULT NULL,
  22.     ->        `descmotivo` varchar(45) DEFAULT NULL,
  23.     ->        `anulado` varchar(45) NOT NULL,
  24.     ->        `pendiente` varchar(45) NOT NULL,
  25.     ->        `observaciones` varchar(100) DEFAULT NULL,
  26.     ->        `id_orden_carga` int(10) unsigned NOT NULL,
  27.     ->        PRIMARY KEY (`cod_cliente`,`nro_pedido`,`cod_articulo`,`cant_pedid`)
  28.     ->      ) ENGINE=InnoDB AUTO_INCREMENT=782744 DEFAULT CHARSET=latin1;
  29. Query OK, 0 rows affected (0.03 sec)
Código MySQL:
Ver original
  1. mysql> INSERT INTO `pedidos` (`cod_cliente`, `razon_social` ,  `nro_pedido`, `fech_pedido`,
  2.     ->        `cod_articulo`, `descripcion`, `unidad`,
  3.     ->        `anulado`, `pendiente`, `id_orden_carga`)
  4.     ->      VALUES (1, 'loquesea', 12, NOW(), 11, 'describe articulo', 32, 'NO', 'NO', 3333);
  5. ERROR 1364 (HY000): Field 'cant_pedid' doesn't have a default value
Código MySQL:
Ver original
  1. mysql>  INSERT INTO `pedidos` (`cod_cliente`, `razon_social` ,  `nro_pedido`, `fech_pedido`,
  2.     ->        `cant_pedid` , `cod_articulo`, `descripcion`, `unidad`, `anulado`, `pendiente`, `id_orden_carga`)
  3.     ->      VALUES (1, 'loquesea', 12, NOW(), NULL, 11, 'describe articulo', 32, 'NO', 'NO', 3333);
  4. ERROR 1048 (23000): Column 'cant_pedid' cannot be null
Código MySQL:
Ver original
  1. mysql> SELECT `cod_cliente`, `razon_social` ,  `nro_pedido`, `fech_pedido`,
  2.     ->        `cant_pedid` , `cod_articulo`, `descripcion`, `unidad`, `anulado`,
  3.     ->        `pendiente`, `id_orden_carga`
  4.     -> FROM `pedidos` ;
  5. Empty set (0.00 sec)
¿Ves la última linea?
Bueno, esa dice que la tabla está vacía. Ninguna de las dos inserciones funcionó...

Verifica.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)