JONES의 이름과 월급과 부서 번호를 조회하는 동안 다른 세션에서 JONES의 데이터 갱신하지 못하도록하기
순서 | SCOTT으로 접속한 터미널창1 | SCOTT으로 접속한 터미널창2 |
1 | select ename, sal, deptno from emp where ename = 'JONES' for update; |
|
2 | update emp set sal = 9000 where ename = 'JONES' ←-------------------------멈춤 |
|
3 | commit; 커밋 완료 |
|
4 | 1행 업뎃 |
SELECT .. FOR UPDATE 문은 검색하는 행에 LOCK을 거는 SQL문
순서2에서 update하려해도 update가 안되고 waiting
commit 수행 시 LOCK해제되어 업데이트 된다
'SQL' 카테고리의 다른 글
SQLD 문제 푸는데 필요한 지식 + (0) | 2023.08.25 |
---|---|
SQL 54(서브쿼리를 사용해 데이터 입력,수정,삭제,합치기) (0) | 2023.08.18 |
SQL 52(락/LOCK) (0) | 2023.08.14 |
SQL 51(데이터 입력, 수정, 삭제/ MERGE) (0) | 2023.08.11 |
SQL 50 (데이터 저장 취소/COMMIT, ROLLBACK) (0) | 2023.08.11 |