Pouziti autoincrementu

Michal Kubecek mike na mk-sys.cz
Středa Červen 25 19:36:33 CEST 2003


On Tue, Jun 24, 2003 at 11:06:03PM +0200, Petr Vileta wrote:
> 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.

To, že ta data zapisujete "najednou", je jen vaše zbožné přání,
skutečnost je úplně jiná. Pokud vám to tak zatím vychází, máte
docela velké štěstí. Pokud chcete nějakou neatomickou operaci
provést "najednou", bez transakcí se neobejdete. I u "malých
systémů" k race conditions dochází, jenom ne tak často.

Přesto je dobře, že jste tímto svým popisem přiznal, že to vaše
"jednoduché" řešení je ve skutečnosti daleko komplikovanější než
to klasické - i když ušetříte jeden sloupec tabulky a jeden index.

                                                    Michal Kubeček


Další informace o konferenci Databases