[ORACLE] SELECT ~ FOR UPDATE
2024. 10. 8.
SELECT ~ FOR UPDATE란SELECT ~ FOR UPDATE 구문은 "데이터 수정하려고 SELECT 하는 중이야~ 다른 사람들은 데이터에 손 대지 마!" 라고 할 수 있습니다. 좀 더 딱딱한 표현으로는 동시성 제어를 위하여 특정 데이터(ROW)에 대해 베타적 LOCK을 거는 기능입니다. 예를 들어 정단 단순무식한 예로 영화관의 영화 예매 테이블이 있다고 가정합니다. 영알못이라 잔여 좌석을 seat로 표현하였습니다. 여기서 사용자 A와 사용자 B가 월E를 예매하려 동시에 데이터에 접근합니다. A가 잔여좌석 정보를 SELECT하고 예매를 완료하면서 잔여좌석은 1 줄어든 11로 UPDATE 하려합니다. 그런데 그 사이에 B 사용자 또한 예매를 위해 SELECT하였고 A와 마찬가지로 잔여좌석 1..