#title PostgreSQL 트랜잭션 [[TableOfContents]] BEGIN; UPDATE accounts SET balance = balance - 100.00 WHERE name = ’Alice’; -- etc etc COMMIT; BEGIN ~ COMMIT/ROLLBACK을 쓰면 된다. 아래는 SAVEPOINT라는 키워드가 나온다.. BEGIN; UPDATE accounts SET balance = balance - 100.00 WHERE name = ’Alice’; SAVEPOINT my_savepoint; UPDATE accounts SET balance = balance + 100.00 WHERE name = ’Bob’; -- oops ... forget that and use Wally’s account ROLLBACK TO my_savepoint; UPDATE accounts SET balance = balance + 100.00 WHERE name = ’Wally’; COMMIT; 위의 트랜잭션 처리과정을 설명하면 다음과 같다. 1. 트랜잭션 시작 2. UPDATE UPDATE accounts SET balance = balance - 100.00 WHERE name = ’Alice’; 3. SAVEPOINT my_savepoint : 트랜잭션의 시작 시점에서 지금까지 저장 4. UPDATE UPDATE accounts SET balance = balance + 100.00 WHERE name = ’Bob’; 5. 실수 발생 6. ROLLBACK TO my_savepoint : 저장된 SAVEPOINT로 복귀 7. UPDATE UPDATE accounts SET balance = balance + 100.00 WHERE name = ’Wally’; 8. 트랜잭션 완료