Select for update
- 데이터 수정하려고 SELECT 하는 중이야~ 다른 사람들은 데이터에 손 대지 마! 하는 것
- 동시성 제어를 위하여 특정 ROW에 대해 베타적 LOCK을 거는 기능
- 가정 먼저 LOCK을 획득한 SESSION의 SELECT 된 ROW들이 UPDATE 쿼리후 COMMIT 되기 이전까지 다른 SESSION들은 해당 ROW들을 수정하지 못하도록 하는 기능
- SELECT ~ FOR UPDATE를 실행하면 특정 세션이 데이터에 대해 수정을 할 때까지 LOCK이 걸려 다른 세션이 데이터에 접근할 수 없다.
reference
[Database] SELECT ~ FOR UPDATE 란?
MySQL SELECT FOR UPDATE 의 이해