SYSTEM$ABORT_TRANSACTION
SYSTEM$ABORT_TRANSACTION
실행 중인 트랜잭션을 중단(abort)하는 시스템 함수예요. 이미 커밋되거나 롤백된 트랜잭션은 상태를 바꾸지 않아요.
본문
SYSTEM$ABORT_TRANSACTION(<transaction_id>)
<transaction_id>
중단할 트랜잭션의 식별자예요. 트랜잭션 ID를 얻으려면 SHOW TRANSACTIONS 또는 SHOW LOCKS 명령을 쓸 수 있어요.
사용 메모
- 명시적/다중 문장 트랜잭션에서만 지원돼요. 자동 커밋(autocommit) 트랜잭션은 관련 작업을 중단하는 방식으로 취소할 수 있어요.
CREATE TABLE AS SELECT ...를 포함한 DDL 문장은 열려 있는 트랜잭션을 암묵적으로 커밋해요. 암묵적 커밋이 끝나면 이전에 열려 있던 트랜잭션은 중단할 수 없어요.- 트랜잭션은 시작한 사용자 또는 계정 관리자만 중단할 수 있어요.
예시 — 계정의 잠금을 조회한 뒤 트랜잭션을 중단해 볼게요.
SHOW LOCKS IN ACCOUNT;
SELECT SYSTEM$ABORT_TRANSACTION(1442254688149);
-----------------------------------------+
SYSTEM$ABORT_TRANSACTION(1442254688149) |
-----------------------------------------+
Aborted transaction id: 1442254688149 |
-----------------------------------------+