본문 바로가기

Oracle/SQL

SQL 쿼리에 LOCK이 걸리는 경우

특정'행'을 갱신을 하는 update 문장이 있다면, 그 update 문장을 수행하는 session 은 update 하는 '행'에lock 을 건다.

그리고 그 lock은 commit 이나 rollback 을 할때까지 유지 됩니다.

 lock 을 거는 이유는? 

내가 변경하고 있는 데이터를 다른사람이 변경하지 못하도록 하기 위해서.

update 하는 '행' 전체에 lock 을 건다.

→ 만약 내가 king 의 월급을 변경했다면 다른 session 들은 king 의 월급 외에도 다른 어떤 컬럼의 데이터도 변경 할 수 없다.

→ king 말고 allen 의 데이터는 변경 가능하다