Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

problema con insercion y obtencion de datos al mismo tiempo

Estas en el tema de problema con insercion y obtencion de datos al mismo tiempo en el foro de PostgreSQL en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 09/12/2010, 08:45
 
Fecha de Ingreso: marzo-2010
Mensajes: 38
Antigüedad: 14 años, 9 meses
Puntos: 0
problema con insercion y obtencion de datos al mismo tiempo

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 me haya insertado despues que yo y cojo un id que no es el que yo inserte. Alguna idea de como se pueda resolver este problema
  #2 (permalink)  
Antiguo 09/12/2010, 09:58
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: problema con insercion y obtencion de datos al mismo tiempo

Hace poco tuve este inconveniente.
Mi solución fue:

Crear una función en pl que me administre las inserciones. Ingresar en una variable el resultado del NEXTVAL de una secuencia. Hacer la inserción con este valor y retornarlo. Después me recibe otra función el valor insertado y hace las respectivas consultas.

Lo probé con un ambiente altamente transaccional y no me dió problemas.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 09/12/2010, 10:07
Avatar de death_nemesis  
Fecha de Ingreso: abril-2009
Ubicación: Santiago - Chile
Mensajes: 147
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: problema con insercion y obtencion de datos al mismo tiempo

si es el id es autoincremental podrias utilizar esta funcion.

Código SQL:
Ver original
  1. SELECT INTO VARIABLE CURRVAL(pg_get_serial_sequence('TABLA','IDTabla'));


esto trae el ultimo id en tiempo de ejecucion y lo guarda en la "VARIABLE"
  #4 (permalink)  
Antiguo 21/12/2010, 14:40
 
Fecha de Ingreso: diciembre-2008
Mensajes: 65
Antigüedad: 16 años
Puntos: 0
Respuesta: problema con insercion y obtencion de datos al mismo tiempo

Buenos recien entro a este foro despues de foro. aver si aun sirve mi ayuda espero te sirva cuando yo inserto y quiero recuperar uso el returning

insert into persona(nombre, apellido) values('persona1', 'persona2')returning idpersona into ultimoid

ultimoid debe estar declarado antes como integer

espero te ayude esto nos vemos.

Etiquetas: obtencion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:48.