generator neprerusovane rady cisel

Karel Zak zakkr na zf.jcu.cz
Pondělí Únor 11 15:27:00 CET 2002


On Mon, Feb 11, 2002 at 02:59:08PM +0100, Miroslav BENES wrote:
> > Preji dobre odpoledne,
> > 
> > v souvislosti s nedavnou diskuzi o sekvencich v pgsql jsem se chtel
> > zeptat, jestli nekoho nenapadlo reseni $subj. Sekvence mi nezarucuji,
> > ze generovana rada cisel nebude obsahovat mezery (viz rollback
> > v transakci). Reseni na urovni tabulky s poslednim ID ma rovnez sve
> > uskali v pripade cteni (a nasledne incrementace ID) vice procesy
> > zaroven... Napada nekoho nejake elegantni reseni nad DB?
> 
> a co :
> 
> 
> 
> INSERT INTO tabulka (id, data) VALUES ( 1+ ( select max(id) from tabulka ), "data")
> 
> 
> 
> + primarní klíč.

 Na PostgreSQL by to asi bylo pomale (na MySQL asi ne), ale i tak bych si
 jist nebyl. "select max(id) from tabulka" muze vracet ruzna data v
 ruznych transakcich a divil bych se pokud by tomu tak nebylo i u
 Oracle.

> Co se stane při souběžném vkládání z více pocesů ? Na Guptě i na Oraclu tohle 
> chodilo, pokud mě paměť neklame.

 Neumim si predstavit, co kdyz se v jedne transakci provede nekde
 vicekrat ten insert?

        Karel

-- 
 Karel Zak  <zakkr na zf.jcu.cz>
 http://home.zf.jcu.cz/~zakkr/
 
 C, PostgreSQL, PHP, WWW, http://docs.linux.cz, http://mape.jcu.cz


Další informace o konferenci Test