PostgreSQL: Az utolsó beszúrt sor azonosítójának meghatározása
Adatbázisokkal kapcsolatos cikkek / PostgreSQL (1299 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 |