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 쪽은 표준화되어 있지 않아요.

더 알아보기 (Learn more)