일부 행에서만 팬텀 읽기 방지하기
customer_id가 1에서 10 사이인 은행 고객 데이터를 분석해야 해요. customers 테이블에서도 customer_id가 1부터 10까지인 행만 잠그고 싶어요. 이렇게 하면 이 행들은 아무도 수정할 수 없게 보장하면서, 다른 트랜잭션은 테이블의 나머지 부분을 계속 사용할 수 있어요.
고객을 조회한 뒤 몇 가지 수학 연산을 다시 수행해야 해요. (이 연습 문제에서는 해당 연산 자체는 다루지 않아요.) 그다음, 변경 사항이 없음을 확인하기 위해 customer_id가 1에서 10 사이인 고객을 다시 조회하려고 해요.
이 스크립트를 어떻게 준비하면 될까요?
이 연습은 강의의 일부입니다
SQL Server에서의 트랜잭션과 오류 처리
연습 안내
- 팬텀 읽기를 방지할 수 있는 적절한 격리 수준을 설정하세요.
- 트랜잭션을 시작하세요.
- 잠그려는 고객 행을 조회하세요.
- 트랜잭션을 커밋하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
-- Set the appropriate isolation level
___ ___ ___ ___ ___
-- Begin a transaction
___ ___
-- Select customer_id between 1 and 10
SELECT *
FROM customers
___ customer_id ___ ___ AND ___;
-- After completing some mathematical operation, select customer_id between 1 and 10
SELECT *
FROM customers
___ customer_id ___ ___ AND ___;
-- Commit the transaction
___ ___