Spójne SELECTy
Spójrzmy na proces transakcji z poziomu dwóch różnych sesji.
Sesja 1
mysql> BEGIN; Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO tab (f) VALUES (1); Query OK, 1 row affected (0.00 sec) mysql> SELECT * FROM tab; +---+ | f | +---+ | 1 | +---+ 1 row in set (0.00 sec) |
Sesja 2
mysql> SELECT * FROM tab; Empty set (0.00 sec) |
A zatem wykonując to samo polecenie SELECT z poziomu różnych sesji (jednej, w czasie której wykonujemy transkację i drugiej, w czasie której polecenia sa wykonywane "na zewnątrz" transkacji) dostaniemy dwa różne rezultaty.
Dopiero po wykonaniu COMMIT w sesji pierwszej, wynik będzie taki sam z poziomu obu sesji.
Sesja 1
mysql> COMMIT; Query OK, 0 rows affected (0.00 sec) |
Sesja 2
mysql> SELECT * FROM tab; +---+ | f | +---+ | 1 | +---+ 1 row in set (0.00 sec) |
Taką właściwość nazywa się spójnym czytaniem lub spójnym SELECT. Każdy wykonany SELECT zwraca dane aktualne do ostatnio ZAKOŃCZONEJ transakcji.
Źródło: http://gryf.mif.pg.gda.pl/~mate/wyklady/bazy/transakcje.html
Listing
Ranga: Administrator serwisu Punktów: 0