postgres a id serial
robim si stored funkciu ktora ma vratit ID riadka ktory do nej funkcia vlozi.
neviem ci som to spravne vysvetlil takze pokusim sa podrobnejsie
toto je nejaka funkcia
CREATE FUNCTION "vlozriadok" (varchar) RETURNS bigint AS 'begin
declare
slovo alias for $1;
insert into tabulka (text) VALUES('slovo')
return ??? <----- no a tu potrebujem nieco aby to vratilo ID toho riadka(tabulka pozostava zo stlpcov(ID-bigserial,TEXT-varchar)
end;' LANGUAGE "plpgsql"
vie mi niekto poradit?
dakujem moc
Pre pridávanie komentárov sa musíte prihlásiť.
http://en.wikipedia.org/wiki/Insert_(SQL)
doporucujem obzvlast sekciu "Retrieving the key"
insert into tabulka (text) VALUES('slovo') RETURNING currval('mytable_pkey') into i;
mytable_pkey je primarny kluc
tak ma napadlo co ta urobit
select MAX(id) from tabulka into i;
return i;
ale neviem co sa stane ked sa id dosatne na koniec svojho rozsahu, ci sa nezacne cislovat od zaciatku teda od 0, to by mi pak uz MAX(id) moc nepomohlo, i ked neplanujem ze by sa rozsah IDcka vycerpal ale clovek nikdy nevie :(
return currval('tabulka.id');
ERROR: could not open relation with OID 6
CONTEXT: SQL statement "SELECT currval(id) from tabulka"
PL/pgSQL function "vlozriadok" line 12 at return
a funkcia vyzera takto:
id skusam davat do uvodzoviek avsak bez rozdielu
index nebol ziadny, tak som vytvoril index na stlpec id
hmm nechapem co sa mu nepaci
:((
rano mudrejsia vecera :D
return currval('sms_id_seq'::regclass);
vdaka za pomoc a nakopnutia ;)