Posts Tagged ‘mysql’

MySQL: Recoger el último ID insertado en la base de datos.

Muchas veces, creamos tablas con ID autonuméricos en nuestra base de datos mySQL, y también algunas veces necesitamos recoger el identificador autonumérico que se acaba de insertar para poder trastear con él y asociar/relacionar registros de otras tablas.

Hay el metodo rudo que es:

  1. Ejecutamos un select sobre la tabla que contiene el ID autonumérico y lo ordenamos descendentemende por el ID, de manera, que el primer registro que nos devuelte este recordset, es el que se acaba de insertar.
  2. Metemos este ID en una variable y tachan... ya disponemos de el último ID autonumérico que se acaba de insertar.

El problema de esto, es que generamos un trafico de ida y venida bastante absurdo en la base de datos, en relación a los datos que necesitamos recuperar, un simple ID.

Pero como casi todo en este beautiful world, hay un modo mucho mas sencillo de hacerlo:

  1. Despues de ejecutar nuestro INSERT contra la tabla X, solo tenemos que asignar mysql_insert_id() a una variable.

Ejemplo:

PHP:
  1. $_sql = "INSERT INTO tabla (nombre,apellido) VALUES ('Marc','Grijander');"
  2. $insertar = mysql_query($_sql);
  3.  
  4. $ultimo_id = mysql_insert_id();

Que opción os gusta mas? ;)

Referencia a mysql_insert_id(); en php.net