Pouziti autoincrementu

Michal Kubecek mike na mk-sys.cz
Pondělí Červen 23 14:24:32 CEST 2003


On Mon, Jun 23, 2003 at 12:22:21AM +0200, Petr Vileta wrote:

> > a nelze se tomu spolehlivě bránit. Potřebujete-li souvislou řadu hodnot
> > klíče, musíte si vytvořit druhý klíč, který vyplňujete až úplně nakonec,
> > v rámci co nejkratší transakce, která má dostatečnou úroveň izolace
> > (selže-li, opakujete pokus znovu).

> Ale vzdyt ja od zacatku tvrdim, ze to delam takhle :-) Pripravim si veskera
> data (do promennych, do temporary tabulek atd.), ZAMKNU tabulku, kde chci
> ziskat unikatni klic, ziskam ho, zapisu data (vetsinou jedinnou vetu),
> ODEMKNU a jdu zapisovat dalsi data do dalsich tabulek s jiz znamym ID.
> Je pravda, ze pokud bude pristupovat malo klientu (obchod s 3 pokladnami),
> tak si muzu dovolit zamykat napriklad tabulku faktur a nebude to vadit.

Podle mých praktických zkušeností už tři pokladny při nasyceném provozu
(u všech tří je fronta) bohatě stačí na to, aby řešení pomocí zamykání
celé tabulky generovalo víc problémů než je schopno vyřešit. Je pravda,
že jsme tehdy nepoužívali MySQL, takže zamykání celé tabulky byla jen
taková hypotetická možnost, ale přesto jakýkoli pokus o řešení, které by
se podobalo tomu vašemu, skončil naprostým nezdarem. Jediná funkční
varianta byla ta, kterou jsem popsal výše.

> fakturu. Abych zamezil dalsim diskuzim, tak uvedu, ze se rozhodne nejedna o
> aplikace pro firmy se stovkami faktur za minutu ;-)

Nejsou potřeba stovky, i vámi uvedený příklad stačí vygenerovat dostatečné
množství kolizí.

> Kdyz potrebuju dojet 5 km, klidne zvolim Trabanta, kdyz pojedu 500km, asi
> zvolim neco slozitejsiho a pohodlnejsiho, treba Mercedes. Takze pro male
> aplikace klidne zamykam tabulky na nezbytne nutnou dobu a mam naprosto
> prehledna data, ktera dokazu v pripade nutnosti opravit i z prikazove radky
> a bez papiru plneho poznamek typu "Faktura 10/2003 ma ID=132009876500" :-)

Používám dva různé klíče a takový papír jsem nikdy nepotřeboval. Je-li
číslo faktury jednoznačné, není snad takový problém vyhledávat podle něj.

                                                           Michal Kubeček


Další informace o konferenci Test