[Php-avanzado] id de anticipado y querys
Matias Gea
matigea en gmail.com
Mar Jul 20 08:19:35 ART 2010
Hola, Carolina, lo que te dice Ezequiel no es exactamente así. De
hecho, el siguiente id no siempre es correlativo al mayor de la tabla.
Supongamos esta situación:
- Guardo en un a tabla vacía 15 elementos, con ids correlativos,
entonces tengo mi ultimo id que es 15, el correlativo sería el 16.
Todo bien, pero supongamos que yo borro el elemento 15. En este caso,
el siguiente id seguiría siendo 16, aunque el correlativo al mayor de
la tabla (14) es el 15.
Además, cuando yo estoy programando un sitio con conexiones
concurrentes (como pasa generalmente en entornos web) se puede dar el
caso que dos usuarios lean el ultimo id de la tabla al mismo tiempo y
el cálculo del siguiente daría el mismo resultado, es decir:
- Juan y Pepito acceden exactamente al mismo tiempo al sitio y leen en
la BD que el utlimo id es el 15, entonces el sistema calcula que el
ultimo id es 16 (para los dos casos) y guarda los dos registros con el
mismo id. El resultado final, uno de los dos registros termina siendo
pisado por el otro.
En conclusión, no hay forma de saber de antemano cuál es el id con el
que se va a guardar un registro. Lo que deberías hacer es primero
guardar los registros con datos, conseguir el id con la función
mysql_insert_id() y luego guardar los registros relacionales.
Saludos, Matias.
El día 20 de julio de 2010 07:25, Ezequiel Mujica
<ezequielmujica en gmail.com> escribió:
> Hola,
>
> Coincido con Carolina... pensá que si sabes el último sabés el que sigue, es
> decir, si el último insertado en la tabla fue el 15 el que sigue será el 16.
>
> salu2!
>
> Ezequiel.
>
>
>
>
>
> 2010/7/20 br1 meschini <brunomeschini en hotmail.com>
>>
>> lo que pasa es que necesito saber el id con el cual se van a guardar los
>> datos que voy a enviar, antes de enviarlo y guardarlo por lo tanto ese id
>> aun no existe,
>> y necesito saberlo para guardarlo en otra tabla...
>>
>> ________________________________
>> Date: Tue, 20 Jul 2010 00:38:58 -0300
>> From: silverzero.52 en gmail.com
>> To: php-avanzado en pato2.fi.mdp.edu.ar
>> Subject: Re: [Php-avanzado] id de anticipado y querys
>>
>> no entiendo bien el problema, pero esto no lo podés hacer sabiendo el
>> último id insertado para luego utilizarlo en la otra tabla?
>> en ese caso existe la función mysql_insert_id, que te devuelve el ultimo
>> id insertado de la ultima query ejecutada.
>>
>> mas info en: http://php.net/manual/es/function.mysql-insert-id.php
>>
>> 2010/7/20 br1 meschini <brunomeschini en hotmail.com>
>>
>> Hola Leo,,
>> en mi formulario de rehabilitaciones guardo todos los datos en una tabla
>> pero los días que le asigno a la rehabilitación los tengo que guardar en
>> otra
>> tabla la cual tiene los siguientes campos..
>>
>> DIAS_REHABILITACIONES
>> id_diasrehabilitacion
>> id_rehabilitación
>> id_dia
>>
>>
>> preguntas
>>
>> 1) El INSERT se hace en una sola query?
>> 2) Como obtengo de antemanos el id de la rehabilitacion que estoy
>> guardando para guardarlo en la tabla DIAS_REHABILITACIONES?
>> Lei que esto se puede hacer con una query que obtenga el MAX de
>> id_diasrehabilitacion y sumandole uno obtengo el id para guardar, puede ser?
>> hay otra formas?
>>
>> saludos.
>>
>>
>>
>>
>> ________________________________
>> Hotmail is redefining busy with tools for the New Busy. Get more from your
>> inbox. See how.
>> _______________________________________________
>> Php-avanzado mailing list
>> Php-avanzado en pato2.fi.mdp.edu.ar
>> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>>
>>
>>
>> --
>> Carolina
>>
>> ________________________________
>> Hotmail is redefining busy with tools for the New Busy. Get more from your
>> inbox. See how.
>> _______________________________________________
>> Php-avanzado mailing list
>> Php-avanzado en pato2.fi.mdp.edu.ar
>> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>
>
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>
--
Matias Fernando Gea
matigea en gmail.com
http://www.mfgea.com.ar
Más información sobre la lista de distribución Php-avanzado