Está en la página 1de 2

CONSULTAS MYSQL

3 formas de obtener el id del ultimo registro en mysql y php (SQL)


11 comentariosPublicado por jcvier en enero 11, 2009 La idea en de este tip es recuperar el id de la ultima insercion realizada en una tabla, para poder realizar estas operaciones se requiere que el indice sea un campo auto-increment y en teoria deberia funcionar en cualquier base de datos dado por ser sintaxis SQL, sin embargo yo solo las he podido probar en MySQL.

@@identity
Este es posiblemente el metodo mas conocido, consiste en utilizar la sintaxis SELECT @@identity AS id este metodo funciona tanto en MySQL como en SQL SERVER y devuelve el id del ultimo ingreso por lo que se lo utiliza a continuacion de la sentencia INSERT. $rs = mysql_query("SELECT @@identity AS id"); if ($row = mysql_fetch_row($rs)) { $id = trim($row[0]); }

MAX(id)
Otra forma de obtener el ultimo id es mediante la sentencia SELECT MAX(id) AS id FROM tabla, recordando que solo funciona en campos con la propiedad auto-increment. La ventaja de este metodo con respecto al anterior es que puede ser utilizado incluso si se han realizado otras inserciones a otras tablas, si se ha reiniciado el computador, etc; ya que este metodo busca el id de mayor valor dentro de la tabla y como es auto incrementable el mayor siempre sera el ultimo. Es muy util si vas a recuperar el ultimo id en cualquier momento y no solo despues de insertarlo. $rs = mysql_query("SELECT MAX(id_tabla) AS id FROM tabla"); if ($row = mysql_fetch_row($rs)) { $id = trim($row[0]); }

mysql_insert_id
Por ultimo, si estas trabajando en php y mysql es posible que conozcas esta funcion mysql_insert_id(). Al igual que la propiedad @@identity, solo retorna el id del ultimo registro ingresado independientemente de la tabla en la que se haya realizado la operacion. Tambien es posible utilizarla en SQL SERVER a traves de la funcion mssql_insert_id(). $id=mysql_insert_id(); por el momento he confirmado que las tres opciones funcionan perfectamente con mysql y php, y referencias de que funcionan igualmente en SQL SERVER. Como bono para la gente que desarrolla en SQL SERVER les enlazo a este sitio

donde tenemos una pequena muestra de como utilizar la funcion Scope_identity() que trabaja de forma similar a los metodos vistos arriba.

También podría gustarte