typeorm 에서 select 쿼리에 .setLock('pessimistic_write') 을 하면, FOR UPDATE 구문으로 동작함.

index 를 기준으로 lock을 건다.

https://sabarada.tistory.com/122

https://kukuta.tistory.com/215

유저가 댓글을 한번만 달 수 있는 unique 설정이 필요한데, soft delete 방식으로 기존 데이터도 남겨둬야 하는 경우가 발생.

user_id / is_deleted 를 unique 로 묶으려고 했더니, is_deleted = 0/1로 사용하고 있어서 unique를 걸 수 없음.

insert 할때 is_deleted=0 체크를 하려고 해도, 동시에 요청이 들어온 경우 거르기가 어려움. lock 으로 해결이 안됨. 없는 row 에 대해 lock이 안걸림.

is_deleted 를 null 로 두고, 아니.. not deleted.. active=1 / null 형태로 두고, 삭제하면 active=null 설정. 그러면 unique를 걸 수 있다.