우선 postgresql 의 버전이 8.0임을 밝혀 둡니다.
psql -U 유저명 데이타베이스명 으로 디비에 접속했습니다.
\set AUTOCOMMIT off 명령으로 autocommit 껐습니다.
create table aaa( a numeric);
insert into aaa values(1);
select * from aaa; 하면 정상적으로 나옵니다;
근데 여기서 rollback을 하면 create table 까지 롤백되어
버립니다
postgresql은 DDL 명령어도 autocomit 안되는 건가요?
그리고 하나더...
create table bbb(b numeric);
insert into bbb values(2);
select * from bbb; 여기까지는 정상적으로 1건의 데이타를
보여주더군요.
select * form bbb; 하면 syntax에러가 납니다 당연하죠 from 을
form으로 썻으니;
근데 문제는 그담에 commit을 하면 rollback이 되어버립니다;
역시 create table bbb(b numeric) 문장도 같이 롤백
되어버립니다;;
왜 select 명령이 트랜잭션에 영향을 미치나요?
그리고 특정 명령이 잘못 되면 그 명령에 대해서만 rollback이
일어나는 것이 아니라
왜 마지막에 commit한 이후의 모든 명령어가 모두 rollback 되어
버리는 겁니까?
psql 의 문제인지...아니면 postgresql의 한계인지...아니면
어디선가 설정을 잘못해준 것인지...
아시는 분 계시면 좀 도와주세요....
|