Postgres 문서에 따라 - 일단 준비되면 COMMIT PREPARED 또는 ROLLBACK PREPARED를 사용하여 나중에 트랜잭션을 커밋하거나 롤백 할 수 있습니다. 그 명령은 not only the one that executed the original transaction.
PREPARE TRANSACTION 작업을 수행하는 방법
내가 데이터베이스 테이블에 CSV 데이터를 가져올이를 위해, 내가 사용하고 노력하고, 모든 세션에서 발행 할 수 COPY tablename [ (column [, ...]) ] FROM { 'filename' }
이 모든이 쉘 스크립트에서 수행하는
. 이제 문제는 내가 psql
명령을 실행하고 -c
옵션을 통해 매개 변수로이 명령을 전달하고 있다는 점이다 (I 명령이 명령에
prepare transaction 'some-id'
를 통해 트랜잭션을 시작).
오류가 발생하면 저장 점을 만들고 롤백하려고합니다. 쉘 스크립트에서 몇 가지 다른 작업 후
, 나는 이전 psql의 문이 생산하는 것이 오류를 확인하고 때 다음 명령
Prepared Rollback 'transaction-id'
(별도의 psql command with sql statements
에서)
그것을 사용하여 롤백하려고 보고서 "No "transaction-id" found
"
나는 개념이 잘못되었거나 그 과정에서 무언가를 놓치고 있습니까?
psql
명령을 여러 번 발행하여 각각 새로운 트랜잭션이 발생하기 때문에 이런 일이 발생합니까?