[SQL] 083. 락(LOCK) 이해하기

Updated:

초보자를 위한 SQL 200제 교재를 토대로 공부한 내용입니다.

오라클 SQL을 기반으로 합니다.

실습에 사용한 테이블은 정보문화사 홈페이지에서 받을 수 있습니다.


[예시]

LOCK은 같은 데이터를 동시에 갱신할 수 없도록 하는 기능이다.

예시는 터미널1에서 EMP 테이블을 수정하고 COMMIT이나 ROLLBACK을 수행하지 않는다.

그 후 터미널2에서 EMP 테이블을 수정하면 변경되지 않는다.

터미널1에서 수정하려는 행에 LOCK을 걸기 때문이다.

-- 기본 옵션으로 사용
-- AUTOCOMMIT 끄기
SET AUTOCOMMIT OFF;

-- 날짜 출력 포맷 변경
ALTER SESSION SET NLS_DATE_FORMAT = 'RRRR-MM-DD';
-- 만약 터미널1에서 UPDATE 후 COMMIT 하지 않은 경우
UPDATE EMP
SET SAL = 3000
WHERE ENAME = 'JONES';
-- COMMIT;

-- 터미널2에서 해당 명령어 실행시 작업이 되지 않음 위에서 LOCK이 되었기 때문
UPDATE EMP
SET SAL = 9000
WHERE ENAME = 'JONES';

Tags:

Categories:

Updated:

Leave a comment