Mysql a "transakce"

Jan Kasprzak kas na informatics.muni.cz
Úterý Srpen 17 17:39:22 CEST 1999


	Zdravim,

	mam databazi (Mysql) a potrebuji udelat nasledujici:
V jedne tabulce jsou zaznamy, ktere tam pridavaji ruzne procesy - kazdy
proces muze pridat jeden nebo vice zaznamu. A pak existuje dalsi
proces, ktery ty zaznamy cte, zpracovava a maze. Protoze na zaznamy v
teto tabulce jsou vazany dalsi veci (v jinych tabulkach a mimo databazi),
je potreba, aby proces "ctenar" zacal zpracovavat zaznamy od urciteho
"pisare" az v okamziku, kdy pisar zapise vsechny zaznamy, ktere potrebuje
zapsat. 

	Chtel bych se obejit bez zamykani tabulek (jedna moznost je,
ze pisar - pokud zapisuje vice nez jeden zaznam - si pred zacatkem zapisu
zamce tabulku WRITE, a po ukonceni odemce; tohle mi ale prijde
neefektivni).

	Napadlo me, ze si do tabulky pridam dalsi sloupec - treba STAV,
a ctenar bude zpracovavat radky pouze s definovanym stavem (treba 'READY').
Timto ale problem nevyresim, protoze stejne po nainsertovani vsech zaznamu
jednim pisarem (se stavem jinym nez 'READY', treba 'ACTIVE'), musim tento
stav atomicky zmenit na 'READY'. A jsem tam, kde na zacatku, protoze
pisar muze vkladat opravdu velke mnozstvi zaznamu.

	Dalsi iterace by byla, pokud by MySQL klient mel prirazene
nejake jednoznacne cislo v ramci systemu. Pak by melo byt mozne,
aby sloupec STAV byl ciselny, a klient by tam vkladal sve cislo.
Az by zapsal, co uzna za vhodne, dal by

	UPDATE TABULKA SET STAV='-1' WHERE STAV='moje_cislo'

(kde "-1" by bylo nejake cislo, ktere nemuze byt pouzito jako cislo
klienta).

	Existuje v MySQL nejake jednoznacne cislo klienta?
Existuje jine reseni?

-Yenya

-- 
\ Jan "Yenya" Kasprzak <kas at fi.muni.cz>       http://www.fi.muni.cz/~kas/
\\ PGP: finger kas at aisa.fi.muni.cz   0D99A7FB206605D7 8B35FCDE05B18A5E //
\\\             Czech Linux Homepage:  http://www.linux.cz/              ///
| The case with NT is the most spectacular.  Seems, they have at least two |
| independant teams.  One introduces bugs, another invents workarounds.    |
| Silly bugs are followed by ugly workarounds. 8)       --Alexey Kuznetsov |


Další informace o konferenci Databases