격리 수준 사용하기
영상에서 보셨듯이, 때로는 개별 트랜잭션에 대해 격리 수준을 지정하는 것이 중요합니다. 이를 위해서는 BEGIN TRANSACTION의 별칭인 START TRANSACTION을 사용하면, 보통과 다름을 더 명확히 드러낼 수 있어 좋습니다. 트랜잭션을 시작할 때 ISOLATION LEVEL을 지정할 수 있습니다.
여기서는 REPEATABLE READ를 사용하겠습니다. 이 격리 수준은 dirty read, nonrepeatable read, phantom read를 모두 방지합니다. FFEIC 데이터에서 RCON2210은 요구불예금(demand deposits) 항목으로, 미결제 당좌예금, 은행 발행 수표, 미반영 대변 등을 추적합니다. 어떤 이유로든 대규모 인출이 발생하면 은행에 부채가 될 수 있습니다. 요구불예금이 100,000,000달러를 초과하는 모든 은행을 찾아보세요.
이 연습은 강의의 일부입니다
PostgreSQL에서의 트랜잭션과 오류 처리
연습 안내
- REPEATABLE READ로 트랜잭션을 시작하세요.
- 요구불예금에서
RCON2210이 100,000,000달러를 초과하는 모든 레코드를 선택하세요. - 여전히
RCON2210이 100,000,000달러를 초과하는 모든 레코드를 다시 선택하세요. - 트랜잭션을 커밋하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
-- Create a new transaction with an isolation level of repeatable read
___ TRANSACTION ___ LEVEL ___ ___;
-- Count of records over 100000000
SELECT ___(RCON2210)
FROM ffiec_reci
WHERE ___ > ___;
-- Count of records still over 100000000
SELECT ___(RCON2210)
FROM ffiec_reci
WHERE ___ > ___;
-- Commit the transaction
___;