posledni automaticky generovany id a prenositelnost
Jan Serak
sherry na pikebo.cz
Úterý Srpen 10 09:25:51 CEST 2004
Michal Hlavac wrote:
> Zdenek Janis wrote:
> (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...
<flame>
To je tedy dost divoka implementace, pokud funguje takto.
Mejme priklad (na jednotlivych radcich naznacen casovy prubeh provadeni
prikazu):
Session #1 Session #2
------------- --------------
p := nextval(seq); -- v p je 14
p := currval(seq); -- v p je 14
x := nextval(seq); -- x=15
x := currval(seq); -- x=15
p := currval(seq); -- !!!!
Pokud po provedeni prikazu s vykricniky je v p cokoli ruzneho od 14, pak
je to nepouzitelna implementace sekvenci (resp. pouzitelna za podminky
bezvyhradne discipliny uzivatelu, kterou lze vynutit pouze organizacne).
</flame>
Jan Serak
Další informace o konferenci Test