1️⃣ Non-Repeatable Read

“같은 SELECT인데 결과가 바뀐다”

📖 예시

계좌 테이블

id balance
1 100

트랜잭션 A

SELECT balanceFROM accountWHERE id=1;-- 결과: 100

트랜잭션 B (중간에)

UPDATE accountSET balance=200WHERE id=1;
COMMIT;

트랜잭션 A (다시 조회)

SELECT balanceFROM accountWHERE id=1;-- 결과: 200

😵 문제

📌 왜 생기나?


✅ 해결 방법

✔️ 방법 1: SELECT FOR UPDATE

SELECT balanceFROM accountWHERE id=1FORUPDATE;