Diskuze: Transakcie - môžu sa dáta zmeniť?

Ostatní jazyky SQL SQL a databáze Transakcie - môžu sa dáta zmeniť?

Avatar
Juraj Mlich
Redaktor
Avatar
Juraj Mlich:

Zdravím,

hľadám odpoveď na jednu otázku, ale nemôžem ju nikde nájsť.

Počas transakcie, môžu byť dáta zmenené iným dotazom mimo transakcie? Tzn. transakcia, v ktorej by boli dva rovnaké SELECT dotazy, môže vrátiť dva rozdielne výsledky, ak by v čase vykonávania transakcie v inom pripojení bol vykonaný povedzme napríklad INSERT dotaz?

Ďakujem za odpoveď :)

Odpovědět 29. března 10:58
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Odpovídá na Juraj Mlich
Michal Štěpánek:

V podstatě ano. Mezi dvěma selecty se to stát může. Ale jak to myslíš

transakcia, v ktorej by boli dva rovnaké SELECT dotazy

Neumím si představit důvod dvou stejných selectů v jedné transakci...

Editováno 29. března 11:06
Nahoru Odpovědět 29. března 11:04
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
coells
Redaktor
Avatar
Odpovídá na Juraj Mlich
coells:

Transakce ti zaručuje konzistenci dat, takže dva stejné dotazy vrátí v rámci transakce vždy stejné výsledky.

Ovšem nutno dodat, že výsledek bude stejný v rámci sigma-algebry, nikoliv z hlediska toho, co reálně uvidíš.
Pokud máš v tabulce 100 záznamů a uděláš SELECT TOP 10 *, můžeš dostat pokaždé různá data.

 
Nahoru Odpovědět 29. března 11:30
Avatar
Juraj Mlich
Redaktor
Avatar
Juraj Mlich:

Transakce ti zaručuje konzistenci dat, takže dva stejné dotazy vrátí v rámci transakce vždy stejné výsledky.
vs
V podstatě ano. Mezi dvěma selecty se to stát může.

Takže? :) Dva rovnaké selecty bol len príklad, potrebujem to využiť inak :)

Nahoru Odpovědět 29. března 11:45
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Odpovídá na Juraj Mlich
Michal Štěpánek:

Mezi dvěma selecty ANO, ovšem pokud jsou tyto selecty v jedné transakci, tak NE. Ovšem, jak píše coells může být rozdíl mezi tím, co vidíš a tím, co je skutečně v DB. Jen jsem právě nějak nepochopil, proč jsi chtěl mít dva stejné selecty v jedné transakci...

Editováno 29. března 12:25
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 29. března 12:24
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Juraj Mlich
Redaktor
Avatar
Odpovídá na Michal Štěpánek
Juraj Mlich:

Záleží na tom ? Bol to len príklad, neplánujem to použiť, potreboval som to vedieť kvôli niečomu inému. Každopádne ďakujem za upresnenie :)

Nahoru Odpovědět 29. března 13:17
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.