ROLLBACK PREPARED
ROLLBACK PREPARED (ROLLBACK PREPARED)
2단계 커밋(two-phase commit)을 위해 미리 준비된 트랜잭션을 취소하고 싶을 때 쓰는 명령이에요. 트랜잭션을 "prepared(준비됨)" 상태로 만들어 둔 뒤, 그 트랜잭션을 더 이상 진행하지 않고 되돌리고 싶다면 ROLLBACK PREPARED로 바로 롤백할 수 있어요.
출처: PostgreSQL 문서
본문
개요 (Synopsis)
ROLLBACK PREPARED transaction_id
설명 (Description)
ROLLBACK PREPARED는 prepared 상태에 있는 트랜잭션을 롤백해요.
파라미터 (Parameters)
transaction_id— 롤백할 트랜잭션의 트랜잭션 식별자(transaction identifier)예요.
참고 (Notes)
prepared 트랜잭션을 롤백하려면 원래 해당 트랜잭션을 실행한 사용자와 같은 사용자이거나, 수퍼유저(superuser)여야 해요. 다만 트랜잭션을 실행했던 세션과 같은 세션일 필요는 없어요.
이 명령은 트랜잭션 블록 안에서는 실행할 수 없어요. prepared 트랜잭션은 즉시 롤백됩니다.
현재 사용 가능한 모든 prepared 트랜잭션은 pg_prepared_xacts 시스템 뷰에서 확인할 수 있어요.
예시 (Examples)
트랜잭션 식별자 foobar로 식별되는 트랜잭션을 롤백해요:
ROLLBACK PREPARED 'foobar';
호환성 (Compatibility)
ROLLBACK PREPARED는 PostgreSQL 확장 기능이에요. 주로 외부 트랜잭션 관리 시스템에서 쓰기 위한 목적이며, 그중 일부는 X/Open XA 같은 표준으로 다뤄지지만 해당 시스템들의 SQL 쪽은 표준화되어 있지 않아요.