Pouziti autoincrementu

Petr Vileta petr na practisoft.cz
Úterý Červen 24 23:06:03 CEST 2003


> Důvod je jednoduchý a už jsem ho tu popsal. Je to proto, že primární klíč
> potřebujete hned, jakmile se pokuslíte provést insert do tabulky. Pak je
> ale ještě strašně moc prostoru, kde to může neprojít. Mezitím mohou být
> "vydána" další ID a pokud nakonec provedete rollback (nebo něco, co tomu
> odpovídá, nepoužíváte-li transakce), vznikne vám díra. Neexistuje způsob,
> který by tomu spolehlivě zabránil. Potřebujete-li tedy souvislou řadu
> hodnot identifikátorů, nelze je použít jako primární klíč (nemáte-li tedy
> striktně jednoklientské prostředí).
Ale kdepak, primarni klic potrebuju presne v okamziku zapisu, jenze ja
zapisuju zasadne vsechna data najednou. Pripravim si hlavni data faktury,
zakaznika atd do promennnych, polozky si drzim v temporary table a kazdou
mam zaroven zablokovanou v tabulce skladovych zasob (uz je moje, nikdo jiny
mi ji nevezme). Vsechna data mam nekde ulozena a overena a teprve pak bud
pridelim nejaky primarni klic a vsechno najednou to zapisu do tabulek, nebo
to cele zahodim. A tim se zaroven vyhybam nutnosti pouzivat transakce. Pro
jistotu upozornuji, ze to je vhodne jen pro male systemy, ale zato je to
prehlednejsi a rychlejsi. Naopak pro velke systemy jsou rychlejsi transakce
a autoincrement.
--
Petr




Další informace o konferenci Test