Insert zaznamu do Postgresu a zjisteni PK

Jindrich Makovicka makovick na kmlinux.fjfi.cvut.cz
Úterý Červenec 29 14:15:23 CEST 2003


Zdenek Janis wrote:
> Zdravim,
> 
> uz asi pul roku v mezi casu se seznamuji s Postgresem(7.3) a stale resim 
> jednu drobnost, kterou lze doufam resit nejak elegantneji:
> 
> CREATE TABLE sklad (
>    id SERIAL,
>    kategorie TEXT NOT NULL,
>    nazev TEXT NOT NULL,
>    nakup DATE NOT NULL,
>    PRIMARY KEY("id")
> ) WITH OIDS;
> 
> Vlozim zaznam:
> 
> INSERT INTO sklad (kategorie, nazev, nakup) values ('tmp', 'tmp', now());
> 
> Zaznam se vlozi, ale ja bych potreboval ziskat id tohoto vlozeneho zaznamu.
> Zatim to resim takto funkci:

udelat po insertu

select currval('jmeno_odpovidajici_sekvence')

kde jmeno_odpovidajici_sekvence bude nejspis sklad_id_seq, by nestacilo?

currval
           Return the value most recently obtained by nextval for this
           sequence in the current session. (An error is reported if
           nextval has never been called for this sequence in this
           session.) Notice that because this is returning a 	 
session-local
           value, it gives a predictable answer even if other sessions are
           executing nextval meanwhile.

-- 
Jindrich Makovicka



Další informace o konferenci Linux