읽은 행을 다른 트랜잭션이 수정하지 못하게 기다리게 한다.
충돌이 잦고 손실 비용이 큰 업무에 맞다.
방지책의 선택은 충돌 빈도, 실패 비용, 재시도 가능성에 따라 달라진다.
읽은 행을 다른 트랜잭션이 수정하지 못하게 기다리게 한다.
충돌이 잦고 손실 비용이 큰 업무에 맞다.
`balance = balance - :amount`처럼 읽기와 쓰기를 한 문장으로 묶는다.
영향받은 행 수가 0이면 다시 확인한다.
`WHERE version = :oldVersion`으로 읽은 전제가 아직 맞는지 검사한다.
충돌이 드물고 재시도가 쉬울 때 적합하다.