posledni automaticky generovany id a prenositelnost
Michal Hlavac
hlavki na medium13.sk
Úterý Srpen 10 09:09:50 CEST 2004
Zdenek Janis wrote:
> Presto mi unika zakladni problem ;-) (Posledni dobou dost casto ;-))
>
> Klidne mohu pouzit typ (big)serial v tabulce a pak:
> 1) klidne to tabulky vlozit zaznam a nechat, aby se tam samo
> vygenerovalo ID (napr.) a jeho hodnotu ziskam pohodlne volanim pres
> currval(seq).
> 2) A nebo proste nejdrive zavolam nextval(seq) a pak to puziju do
> insertu v tabulkach.
>
> Me se jevi oba postupy stejne "narocne".
> Osobne stejne nejacasteji pouzivam funkci, ktera vlozi zaznam a vrati ID.
(1) No, zase tak 100% ekvivaletne to nie je...
Ten prvy sposob, teda:
premena := nextval(seq);
a teraz robim inserty s premennou...
(2) Druhy sposob:
INSERT INTO tabulka VALUES (nextval(seq), ...)
a teraz sa pytam na curval(seq) a pouzivam ho...
Na prvy pohlad sa to zda rovnako... Az na to, ze (2) musim vykonat v
jednej transakcii... Pretoze, co ak mi v (2) niekto medzi insertom a
curval vykona dalsi insert... Na curval(seq) dostanem zle cislo...
Kdezto (1) nemusim vykonavat v jednej transakcii...
Teda urcite bezpecnejsi je sposob (1)...
hlk
--
[ miso hlavac ][ hlavki na medium13.sk ][ http://www.medium13.sk ]
[ icq:94900232 ][ callto://hlavki ]
Další informace o konferenci Databases