안녕 하십니까 이성한 입니다.
transaction 관리에 대한 질문입니다.
다음과 같은 sql 문장을 psql에서 실행을 했습니다.
tms=>INSERT INTO tmsrout010 VALUES ( 55, 55, 55, 55) ;
INSERT 30176 1
tms=>INSERT INTO tmsrout010 VALUES ( 66, 66, 66, 66) ;
INSERT 30177 1
tms=> rollback;
NOTICE: ROLLBACK: no transaction in progress
NOTICE: ROLLBACK: no transaction in progress
ROLLBACK
tms=> select * from tmsrout010;
node_id | name | location | ip_address
---------+------+----------+------------
55 | 55 | 55 | 55
66 | 66 | 66 | 66
(2 rows)
위에 결과로 보면 transaction 관리가 되지 안는 것으로 생각 됩니다.
(auto commit 으로 되어 있는 것 같습니다.)
transaction 관리를 하려면 무슨 방법을 사용 해야 하는 가요.
위 예제는 sample로 보여드리는 예제이며
실질적으로는
PL/pgSQL 에서 error 발생시 지금까지처리해온 모든 transaction을
ROLLBACK 으로 처리해야 합니다..
감사합니다.
|