Ver Mensaje Individual
  #5 (permalink)  
Antiguo 06/11/2012, 12:31
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: id no funciona auto_increment

Hola a todos.

Insisto que el problema no está tanto en el el uso de los nombres de los campos, sino en el uso de las comillas contra los valores nullos... en realidad hay muchas formas en que podría hacer funcionar el insert, listando o no los nombres de los campos, pero lo importante es el uso correcto de los valores nulos.

Código MySQL:
Ver original
  1. mysql> CREATE TABLE tabla(
  2.     -> id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT ,
  3.     -> campo_obligatorio VARCHAR(30) NOT NULL,
  4.     -> campo_no_obligatorio VARCHAR(30),
  5.     -> PRIMARY KEY (id));
  6. Query OK, 0 rows affected (0.10 sec)
  7.  
  8. mysql> INSERT INTO tabla VALUES (NULL, 'campo obligatorio uno',
  9.     -> 'campo no obligatorio uno');
  10. Query OK, 1 row affected (0.03 sec)
  11.  
  12. mysql> INSERT INTO tabla (id, campo_obligatorio, campo_no_obligatorio)
  13.     -> VALUES (NULL, 'campo obligatorio dos', 'campo no obligatorio dos');
  14. Query OK, 1 row affected (0.04 sec)
  15.  
  16. mysql> INSERT INTO tabla (campo_obligatorio, campo_no_obligatorio)
  17.     -> VALUES ('campo obligatorio tres', 'campo no obligatorio tres');
  18. Query OK, 1 row affected (0.02 sec)
  19.  
  20. mysql> INSERT INTO tabla (id, campo_obligatorio, campo_no_obligatorio)
  21.     -> VALUES (NULL, 'campo obligatorio cuatro', NULL);
  22. Query OK, 1 row affected (0.02 sec)
  23.  
  24. mysql> INSERT INTO tabla (campo_obligatorio)
  25.     -> VALUES ('campo obligatorio cinco');
  26. Query OK, 1 row affected (0.03 sec)
  27.  
  28. mysql> INSERT INTO tabla (id, campo_obligatorio, campo_no_obligatorio)
  29.     -> VALUES (15, 'campo obligatorio quince', 'campo no obligatorio quince');
  30. Query OK, 1 row affected (0.02 sec)
  31.  
  32. mysql> INSERT INTO tabla VALUES (NULL, 'campo obligatorio otro', '');
  33. Query OK, 1 row affected (0.02 sec)
  34.  
  35. mysql> SELECT * FROM tabla;
  36. +----+--------------------------+-----------------------------+
  37. | id | campo_obligatorio        | campo_no_obligatorio        |
  38. +----+--------------------------+-----------------------------+
  39. |  1 | campo obligatorio uno    | campo no obligatorio uno    |
  40. |  2 | campo obligatorio dos    | campo no obligatorio dos    |
  41. |  3 | campo obligatorio tres   | campo no obligatorio tres   |
  42. |  4 | campo obligatorio cuatro | NULL                        |
  43. |  5 | campo obligatorio cinco  | NULL                        |
  44. | 15 | campo obligatorio quince | campo no obligatorio quince |
  45. | 16 | campo obligatorio otro   |                             |
  46. +----+--------------------------+-----------------------------+
  47. 6 rows in set (0.00 sec)

Observa el último caso, es muy claro lo que puse desde el primer post:

Cita:
es muy distinto enviar una cadena vacía ('') a un valor nulo (null)
Saludos Leo.