Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/01/2012, 23:10
Henkka
 
Fecha de Ingreso: abril-2008
Ubicación: Santa Fe, Argentina
Mensajes: 41
Antigüedad: 16 años
Puntos: 14
Respuesta: insert en mysql e id

Se obtiene lanzando una query con la función interna LAST_INSERT_ID()

Tenemos nuestra tabla, le ingresamos 4 registros.

Código MySQL:
Ver original
  1. mysql> describe durr;
  2. +-------+---------+------+-----+---------+----------------+
  3. | Field | Type    | Null | Key | Default | Extra          |
  4. +-------+---------+------+-----+---------+----------------+
  5. | id    | int(11) | NO   | PRI | NULL    | auto_increment |
  6. | campo | int(11) | NO   |     | NULL    |                |
  7. +-------+---------+------+-----+---------+----------------+
  8. 2 rows in set
  9.  
  10.  
  11. mysql> INSERT INTO durr (campo) VALUES (33);
  12. Query OK, 1 row affected
  13.  
  14.  
  15. mysql> INSERT INTO durr (campo) VALUES (17);
  16. Query OK, 1 row affected
  17.  
  18.  
  19. mysql> INSERT INTO durr (campo) VALUES (48);
  20. Query OK, 1 row affected
  21.  
  22.  
  23. mysql> INSERT INTO durr (campo) VALUES (99);
  24. Query OK, 1 row affected

Naturalmente, el último registro insertado debería ser el 4.

Código MySQL:
Ver original
  1. +------------------+
  2. +------------------+
  3. |                4 |
  4. +------------------+
  5. 1 row in set

Comprobamos, campo 99 tiene id 4.

Código MySQL:
Ver original
  1. mysql> SELECT * FROM durr;
  2. +----+-------+
  3. | id | campo |
  4. +----+-------+
  5. |  1 |    33 |
  6. |  2 |    17 |
  7. |  3 |    48 |
  8. |  4 |    99 |
  9. +----+-------+
  10. 4 rows in set

Esto te ahorra los problemas de concurrencia al usar MAX() debido a que es orientado a conexiones, y se puede usar con cualquier API.