次のシナリオを想定しましょう。
[Start TX]
SELECT userName FROM users WHERE userId = 1; -- returns x
UPDATE users SET userName = 'y' where userId = 1;
SELECT userName FROM users WHERE userId = 1; -- returns y
[End TX]
データベースはどのようにして2回目にyを返すことを知っていますか?トランザクション状態はどのようにクエリ処理に統合されますか?
別のシナリオ:
[Start TX]
SELECT userName FROM users, accounts WHERE useres.userId = accounts.userId AND accounts.balance < 0; -- returns x
UPDATE accounts SET balance = 100 where userId = 1;
SELECT userName FROM users, accounts WHERE useres.userId = accounts.userId AND accounts.balance < 0; -- returns nothing
[End TX]
同じ質問-データベースはトランザクション情報に対してどのように結合を実行しますか?