Home | Print | Q/A | Guest | NewsLetter
Display context of search results Case-sensitive searching
인놈소개/2010-03-07 › 공분산과상관계수초기하분포SQLReferences세그먼트-익스텐트-블록의개념 › PostgreSQL트랜잭션
Database System
Data Warehouse
Data Analysis
Operating System
Open Source
Enterprise Architecture
Software Engineering
Process
Working Smart

SQL Server
PostgreSQL
Oracle
DB2
Teradata
MySQL
Performance Tuning
Programming

Link
Philosophy
Tools
Misc
주인놈
_
_
SideBar Edit

Contents



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. 트랜잭션 완료

EditText|Print|FindPage|DeletePage|LikePages|http://www.databaser.net|last modified 2010-03-08 17:39:01