[Python-es] Insertar y obtener datos en una tabla al mismo tiempo

Antonio Beamud Montero antonio.beamud en gmail.com
Jue Dic 9 16:02:50 CET 2010


El 09/12/10 15:51, (P en vel) escribió:
> Tal vez no sea un problema para la lista de python 100%, pero como 
> deben haber tantos desarrolladores profesionales aqui tal vez hayan 
> chocado con el siguiente problema.
>
> Tengo una tabla en postgres puede ser en cualquier SGBD
> Ahora, al insertar un nuevo record me hace falta el id del record 
> insertado, pero el problema es que si hago una funcion para que me 
> devuelva el ultimo id insertado tengo el problema de que otro usuario 
> haya insertado despues que yo, y entonces yo cojo un id que no es el 
> que yo inserte. Alguna idea de como se pueda resolver este problema
>    

Con solo mirar en la documentación de postgres, el comando insert lo 
tienes. A partir de la versión 8.2 (creo), se incluye la clausula 
RETURNING, así puedes hacer (ejemplo de la web de postgres):

INSERT INTO distributors (did, dname) VALUES (DEFAULT, 'XYZ Widgets')
    RETURNING did;


Espero te sirva.

Un saludo.

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20101209/a1bf0bd4/attachment.html>


Más información sobre la lista de distribución Python-es