| |||
recuperar valor de clave primaria Buenas. No tengo mucha idea de mysql...He creado una tabla con una clave primaria que se autoincrementa cada vez que inserto una fila. Cuando inserto una nueva fila en la tabla, me gustaría saber que id le ha asignado. HAy alguna manera de saber que valor le ha asignado...pueden ayudarme?gracias |
| |||
Espero que te sirva..
Código:
<? $db= mysql_connect("localhost","root","",MYSQL_CLIENT_INTERACTIVE); mysql_select_db('test'); $iSQL = "INSERT INTO autoincremental_test (description) VALUES('probando...')"; mysql_query($iSQL,$db); /*inmediatamente después del insert realizamos la consulta que nos devuelve el último ID insertado */ $qSQL = "SELECT @@IDENTITY id"; $res = mysql_query($qSQL,$db); $row = mysql_fetch_array($res); echo $row['id']; ?> |
| ||||
Hola Con respecto a la respuesta de Korku hay un problema y es que si consultas el valor máximo justo después de hacer tu INSERT, es posible que en ese periodo de tiempo alguien haga otro INSERT y entonces el MAX no sea el de tu INSERT sino el del otro. Cita: Yo te recomiendo mejor usar LAST_INSERT_ID.Un saludo
__________________ Una vez un elemental de rayos mató una tribu entera de tritones. ¡¡ El sólo quería darse un baño !! http://www.frikilandia.com Neither Fu Nor Fa |
| |||
Si, hay muchas formas de hacerlo, pero teniendo a disposición consultas que retornan el último id insertado (ya sea LAST_INSERT_ID ó SELECT @@IDENTITY, que son iguales), es bueno usarlas. Igualmente depende del gusto del desarrollador y los métodos de Korku son totalmente válidos. |