에구 큰일이네여.
일단 문제는 만일 쿼리문을 ; 로 이어서 쓰는 경우에, 즉
"insert into table_a (a,b) VALUES ('a','b'); insert into table_a (a,b) VALUES ('c','d');"
이런 쿼리문을 실행시킬 때요, 만일 a 필드는 unique하다고 가정하고 이미 테이블에 'a'라는 값이 들어 있다고 하면요...
이걸 콘솔에서 실행하면
ERROR: Cannot insert a duplicate key into unique index .....
insert 426817 1
이렇게 나오죠. 즉 하나는 insert에 성공하고 하나는 중복되는 값이 있어서 insert가 안됬다. 이런 건데요...
이걸 ODBC에서 실행하면 트랜잭션이 걸립니다. 즉 하나가 실패했으니 모두 roll/back이져.
사실 전 이걸 메일링리스트에 쓰는데요 중복되는 사람이 있으면 입력되지 않도록 하려고 unique로 걸어놨거든요. 그럼 중복이 되던지 말던지 신경쓸 필요가 없는건데...
이걸 ODBC로 돌렸더니 하나라도 중복되는 값이 있으면 모든 row가 다 들어가질 않는군요. 에구에구.
혹시 이걸 해결할 수 있는 방법이 있을까요?
흠... 그러니까 ODBC에서 여러문장을 한번에 실행시키면서 트랜잭션이 걸리지 않게 하는 방법요.
아시는 분은 좀 부탁드리겠읍니다. 감사합니다.
|