database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 8839 게시물 읽기
No. 8839
데이터 복원 시 duplicate key value violates unique constraint 문제 해결 방안?
작성자
김희승(sfa9)
작성일
2011-08-23 15:08ⓒ
2011-08-23 15:51ⓜ
조회수
8,861

 

 안녕하세요.   DB 관련된 지식이 거의 없어서.. 그런지.. 무자게 헤매고 있습니다.

 그래서 도움을 요청합니다..

 상황은 다음과 같습니다.

 1. 다음과 같은 방법으로  table 의 데이터만 백업합니다.

         COPY (SELECT * from aTable where id < 10) TO stdout;

2. id 는 primary key 이고 serial 입니다.

3. 백업된 파일에 다음과 같이 데이터가 있습니다.

  COPY aTable FROM stdin;

    2                     abcdefg TEST

    3                     sfgvqfa       

    7                     fd2sd

    9                     dafadfadfdasfa 

    \.

 

4. 이것을 복원을 할 때가 문제 입니다.  백업 했던 내용이 aTable 내에 있을 수도 있고 없을수도 있습니다.

   복원을 할 때, 만약 백업된 내용이 aTable 내에 존재하고 있다면 id가 겹치게 발생하여

   duplicate key value violates unique constraint 에러가 발생합니다.

   위에서 id 가 2, 3, 7, 9  인 것이 백업이 되었는데, 만약 aTable 에 3, 7 이 삭제가 되었다면

   id가 3, 7 인 것만 복원을 하고 싶습니다.

 

5. 원하는 방향은..

    COPY aTable FROM stdin;     에서 어떤 조건을 추가 하여  aTable 에 id 가 2, 3, 7, 9 인 것이 존재하는지 확인해서

    2, 9는 존재하고 있기 때문에 copy 하지 않고, 3, 7에 대해서만 복원을 할 수 있을까 ..    입니다...

 

 지식이 별로 없어서...  우문 일 수 있겠지만.. 현답 부탁드립니다.

 감사합니다.

  

이 글에 대한 댓글이 총 1건 있습니다.

 자료가 변경 되는 일 없이, insert/delete만 일어나는 테이블이라면, 

insert 트리거에서 해당 오류를 예외처리해서 무시하면 됩니다. plpgsql 트리거에서.

begin

  exception when nique_violation then

  end;

end;

정도로 간단하게 되지 않을까싶네요.

 

김상기(ioseph)님이 2011-08-25 09:52에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
8845invalid byte sequence for encoding 이런 애러가 납니다. [1]
나종현
2011-09-27
9358
8842copy 파일을 프로그램상에서 처리를 하려는데요.. [1]
오성진
2011-09-14
7636
8840Vacuum과 Dump 의 동시실행 [1]
박병훈
2011-08-31
8105
8839데이터 복원 시 duplicate key value violates unique constraint 문제 해결 방안? [1]
김희승
2011-08-23
8861
8838function 생성좀 봐주세요. [1]
이기자
2011-08-11
8821
8837timestamp 사용시 index를 걸어두어도 cost 개선없는 이유? [2]
김현진
2011-08-09
8594
8836비효율적인 실행계획 [1]
지우개
2011-08-03
8798
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다