Bird
0
0

Given the following sequence under Read Committed isolation:

medium📝 query result Q5 of 15
PostgreSQL - Transactions and Concurrency
Given the following sequence under Read Committed isolation:

Transaction A:
BEGIN;
SELECT balance FROM accounts WHERE id = 1;
-- returns 500

Transaction B:
BEGIN;
UPDATE accounts SET balance = 600 WHERE id = 1;
COMMIT;

Transaction A:
SELECT balance FROM accounts WHERE id = 1;

What value does Transaction A see in the second SELECT?
A500
BError due to concurrent update
C600
DNULL
Step-by-Step Solution
Solution:
  1. Step 1: Understand Read Committed visibility per query

    Each query sees data committed before it starts, so second SELECT sees committed update from Transaction B.
  2. Step 2: Evaluate the second SELECT result

    Since Transaction B committed 600, Transaction A's second SELECT returns 600.
  3. Final Answer:

    600 -> Option C
  4. Quick Check:

    Read Committed shows latest committed data per query [OK]
Quick Trick: Each query sees latest committed data at query start [OK]
Common Mistakes:
  • Assuming snapshot is fixed for whole transaction
  • Expecting old value on second SELECT
  • Thinking concurrent update causes error

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More PostgreSQL Quizzes