PostgreSQL - insert

 
Vista:

insert

Publicado por MARÍA SOLEDAD (7 intervenciones) el 01/06/2006 18:15:34
Hola. Alguien sabe si existe alguna función en postgres 8 que permita tomar el id que inserta al hacer un insert de una tabla?.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:insert

Publicado por Rodrigo (1 intervención) el 02/06/2006 00:17:48
Si mal no me acuerdo, tenes que estar usando una secuencia para el campo y despues de insertar hacer:

SELECT currval(<nombre de secuencia>);

Espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:insert

Publicado por Julio (334 intervenciones) el 02/06/2006 15:24:49
Dejame ver si te entendi, lo que tu quieres es la fila que se inserta cuando ejecutas una transacción.

Siendo esto así, lo mas fácil es crear una llave primaria a tu tabla y creas una función que te devuelva el PK que esta insertando en ese momento, algó asi:

create table tmp_table
(
id int8 not null,
des varchar,
constraint pk_tmp_table primary key (id)
);

create or replace function f_insert (varchar) returns int8
as
$$
declare
_id int8;
begin
Select max(_id)
into _id
From tmp_table;
_id := _id + 1;
Insert Into tmp_table
Select _id,
$2;
return _id;
end;
$$
language 'plpgsql';

Esta es la manera mas complicada y tediosa (podria llamarse así)

Otra es que crees una secuencia y hagas un curr_val a la secuencia (no me acuerdo si es curr_val)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar