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

Recuperar ultimo registro insertado (campo autoincrement)

Estas en el tema de Recuperar ultimo registro insertado (campo autoincrement) en el foro de PostgreSQL en Foros del Web. Hola como estan todos, tengo una duda referente a como recuperar El id del ultimo registro insertado en una tabla, el id es un campo ...
  #1 (permalink)  
Antiguo 23/09/2008, 08:12
 
Fecha de Ingreso: septiembre-2008
Mensajes: 12
Antigüedad: 12 años, 1 mes
Puntos: 0
Recuperar ultimo registro insertado (campo autoincrement)

Hola como estan todos, tengo una duda referente a como recuperar El id del ultimo registro insertado en una tabla, el id es un campo autoincrement.

Me comentaron que puedo usar

currval('nombre_secuencia')
insert into ... RETURNING

seria tan amable alguien de pasar mas detalles para masticar mejor el tema GRACIAS :)
  #2 (permalink)  
Antiguo 23/09/2008, 11:11
 
Fecha de Ingreso: septiembre-2008
Mensajes: 12
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Recuperar ultimo registro insertado (campo autoincrement)

bueh, por suerte consegui resolver el tema: lo hice asi por si les sirve:


$sql_insert = sprintf("INSERT INTO compras (codproc, fcompra, tipoproc, nomproc, nrocomp, proveed) values(%s,%s,%s,%s,%s,%s) returning cod_detalle;",$codproc, $fecha, $tipoproc, $denominacion, $nrocomprob, $proveedor);

$query = pg_query($conn,$sql_insert);
if($query){

$row = pg_fetch_array($query);
$newId = $row['cod_detalle'];


}

mi campo autonumerico es cod_detalle le hice un returning y despues un fecth array a mi consulta para ubicar la fila y newId adopta el valor del ultimo Id insertado.
  #3 (permalink)  
Antiguo 23/09/2008, 12:25
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 13 años, 2 meses
Puntos: 20
Respuesta: Recuperar ultimo registro insertado (campo autoincrement)

Interesante la sentencia returning, también podrías haberlo sacado usando la sentencia max(cod_detalle) y te regresaría el ultimo numero generado (el mayor)
  #4 (permalink)  
Antiguo 24/09/2008, 02:35
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 13 años, 8 meses
Puntos: 13
Respuesta: Recuperar ultimo registro insertado (campo autoincrement)

sergestux, como tu dices tendria que hacer un insert y despues un select, con returning solo tienes que hacer el insert.
Ademas el sacar el max(cod_detalle) puede dar resultados erroneos si tienes una aplicación con varios usuarios simultaneos.

Salu2
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 13:24.