Quisiera hacer un query sobre el ultimo Registro insertado.
Creo que es algo asi:
$result=mysql_db_query("agenda_de_trabajo","select * from datos where id='.mysql_insert_id().'");
Podria alguien, concretar la solución ?
Josep
| |||
Consulta al ultimo ID insertado Quisiera hacer un query sobre el ultimo Registro insertado. Creo que es algo asi: $result=mysql_db_query("agenda_de_trabajo","select * from datos where id='.mysql_insert_id().'"); Podria alguien, concretar la solución ? Josep |
| |||
Si ese "id" es autoincremental usa preferentemente: mysql_insert_id() .. (función de PHP) http://www.php.net/manual/en/functio...-insert-id.php o su equivalente en SQL de Mysql: LAST_INSERT_ID() (en los comentarios de los usuarios del manual de PHP tienes ejemplos .. ) Un saludo, |
| |||
Necros .. Si crees que puedas tener problemas de "atomicidad" puedes bloquear la tabla que vas a ejecutar dicho bloque q contenga la versión SQL de obtención del último ID generado por ese campo autoincremental de esa tabla. mas info: http://www.mysql.com/doc/en/LOCK_TABLES.html Un saludo, |
| |||
igual kedo como un pardillo, pero.... q coño es "atomicidad"?
__________________ Linux, es para los que odian Microsoft/Windows, BSD, es para los que amamos *IX. |
| |||
Jeje ahí con la teoría me pillan .. Solo sé que se usa mucho cunado se habla de "transacciones" .. y en el manual de Mysql por lo menos aparece ese "terminio" (atomic .. igual mi traducción de andar por casa no es la correcta :cantar: ) en las funcioens de bloqueo de tablas y cosas así .. Un saludo, |
| |||
Atomicidad se refiere a que la operacion se realice como si fuera en un solo paso. El problema existe cuando hay concurrencia, es decir varios script ejecutandose al mismo tiempo sobre los mismo datos. Por eso se utiliza la atomicidad para garantizar que ningun script "pise" al otro. Por ejemplo: supongamos que nuestro scritp hace lo siguiente: -Insertar registro. -Obtener ultimo registro. -Mostrar Id. Si se esta ejecutando un solo script no hay problema alguno. El problema es cuando se ejecutan mas de uno, supongamos lo siguiente: Sp1: script 1 Sp2: script 2 Sp1 -Insertar registro. Sp2 -Insertar registro. Sp2 -Obtener ultimo registro. Sp1 -Obtener ultimo registro. Sp1 -Mostrar Id. Sp2 -Mostrar Id. Veamos que pasa, si prestan atencion el script 1 esta obteniendo la informacion incorrecta, pues antes de obtener el ultimo registro, se ejecuto el script 2 modificando asi el dato obtenido. Esto es asi aunque no lo crean, es decir los scripts se ejecutan "mezclados". Por esto hace falta la atomicidad, o sea forzar a que se ejecute primero uno y luego el otro, asi no ocurren este tipo de cosas. Bueno, espero haber aportado en algo. Saludos Nok. |
| |||
ah, vale, "atomicidad", curioso nombre xD. y pq coño no usan semaforos? es q eso de atomico, da mal rollo, a ver is va a explotar o algo xD P.D, thx por la explicacion ;)
__________________ Linux, es para los que odian Microsoft/Windows, BSD, es para los que amamos *IX. |
| |||
es que justamente una de las maneras de lograr atomicidad es utilizando semaforos. Pasa que en este caso, conviene utilizar las herramientas que te brinda el motor gestor de base de datos. Simpletemente por eso. Saludos. |