PostgreSQL: Az utolsó beszúrt sor azonosítójának meghatározása

Adatbázisokkal kapcsolatos cikkek / PostgreSQL (1088 katt)

Tegyük fel, hogy van egy PostgreSQL táblánk:

create table tabla
(sor_id serial not null,
adat integer,

primary key (sor_id));



Ha ebbe a táblába egy insert utasítással beszúrunk egy új sort, és szeretnénk tudni, hogy a tábla sor_id mezőjébe milyen érték került, akkor azt a következő utasítással tehetjük meg:

insert into tabla (sor_id, adat) values (default, 1) returning sor_id;



Ha ezt a módszert egy PL/PGSQL függvényben szeretnénk használni, akkor azt az alábbi módon lehet megtenni (a kódot a pgAdmin programból másoltam ki):

-- Function: func_proba()

-- DROP FUNCTION func_proba();

CREATE OR REPLACE FUNCTION func_proba()
RETURNS integer AS
$BODY$declare

v_sor_id tabla.sor_id%type;

begin
insert into tabla (sor_id, adat) values (default, 1)
returning sor_id into v_sor_id;

return v_sor_id;
end;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION func_proba() OWNER TO proba;


Előző oldal Kapitány