말씀대로 중간에 구문 에러가 나면 모두 입력이 되질 않습니다.
간혹가다 이상한 현상이 발생하기도 하는데 그것은 입력도중 에러가 없는데도 에러가 발생한다는 것입니다. 주로 multibyte 문자에서 그런일이 많이 발생합니다. 그럴 경우 그 문자열이 든 row 를 찾아서 제일 마지막으로 옮겨 주는 수 밖에 없습니다. 그럴 경우 제대로 입력되는 현상이 발생하더군요. 그런데 이게 한두줄이면 괜찮은데 많을 경우 거의 노가다입니다.
그냥 참조하시기 바랍니다. psql 에서 발생하는 에러가 아닐까 하는 생각을 해 봅니다.
>>김상기 님께서 쓰시길<<
:: copy 구문은 \. 문자열을 만날 때 그 구문이 끝나는 것으로
:: 인식되기 때문에, 잘 들어가다가 중간에 오류를 발생하면,
:: 모든게 rollback 됩니다. /./
::
:: 데이터가 확실하지 않다면,
:: insert 구문과 commit로 하나씩 차근히 늦는 방법이
:: copy 구문에 비해서 속도가 훨씬 늦지만, 훨씬 안정적인 방법입니다.
::
::
:: >>가우 님께서 쓰시길<<
::
:: :: copy tblname from stdin using delimiters '|';
:: :: 10|김순이
:: :: 123|사시리
:: :: \.
:: ::
:: :: 위의 구문에서 두번째 레코드가 입력오류라면 모두취소되 버리는데 오류가난 레코드만 취소되게 할
:: 순
:: :: 없을까요?
:: :: 하나의 문은 그자체로 트랜잭션 처리가 되기때문에 롤백이 되버리는것 같은데 그런가요?
:: ::
:: :: insert를 써서 하기엔 낭비가 많을것같고,...
:: ::
:: :: 자꾸 질문만 해서 죄송.
|