poziomy izolacji

0
Set transaction isolation level read commited;
Update pr Set pensja =4000 where nazwisko=’Kowalski’;
Commit;
Update pr set pensja = 4200 where nazwisko=’Kowalski’;

Kowalski w tym momencie będzie miał pensję 4000? Bo nie zatwierdzono commitem po zmianie na 4200, a mamy poziom izolacji read commited.

0

Nie, dirty read nie występuje kiedy masz read commited. Ale nadal może występować problem non-repeatable read jeśli oprócz tego kodu który pokazałeś działa jeszcze druga, długa transakcja która na początku odczytuje pensje i potem odczytuje ja jeszcze raz. Wtedy może się okazać że za pierwszym razem wynik był inny niz za drugim. Dodatkowo występuje też problem phantom read, czyli może sie okazać że w "międzyczasie" pojawią sie nowe rekordy w bazie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1