/ / Ako môžem dosiahnuť situáciu, keď riadky čítané jednou transakciou nemôžu čítať iná transakcia? - mysql, transakcie, izolácia, transakcia-izolácia

Ako môžem dosiahnuť situáciu, keď riadky čítané jednou transakciou nemôžu čítať inou transakciou? - mysql, transakcie, izolácia, transakcia-izolácia

Ako môžem dosiahnuť situáciu, keď riadky čítané jednou transakciou nemôžu byť prečítané inou transakciou?

Z jedného z mojich tabuliek so stĺpcom A-F musím vybrať max(columnA), S maximálnou hodnotou a na základe nejakého výpočtu budem musieť vykonať ďalšie príkazy vloženia.

S úrovňou serializovateľnej izolácie čítajú dve transakcie rovnakú maximálnu hodnotu. Výsledkom je zámok čakať na jednu transakciu a zablokovať druhú transakciu.

odpovede:

0 pre odpoveď č. 1

Možno to nebudete môcť vyriešiť len na základe izolácie.

Zmena dizajnu, ktorú by ste mohli urobiť, je uložiťmaximálnu hodnotu samostatne a majú trojstupňový príznak spolu so záznamom - maximálna hodnota spracovaná, spracovaná a nespracovaná. Takže vždy, keď transakcia číta maximálnu hodnotu z tabuľky, môže skontrolovať, či sa max hodnota už spracováva. Ak áno, nevykoná to ostatné príkazy vloženia.