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 5790 게시물 읽기
No. 5790
덤프시 sequence 가 다르게 덤프가 되는 문제가 생겨서요..
작성자
pg초보
작성일
2005-01-10 10:55
조회수
2,679

7.4 버젼에서 7.4.6 버젼으로 디비를 옮기고 있습니다.

그런데 이상하게 sequence 가 다르게 덤프가 되네요..

그래서 디비에서 셀렉트는 되지만 insert를 하려고 하고 에러가 계속 나고 있습니다.

제가 postgresql은 초보라..너무 힘드네요..

pg_dump -s 로 객체정의만 덤프를 해보아도.. 역시 sequence 가 다르게 덤프가 되고요..

sequence 값을 따로 덤프해야 하나요?

만일 그렇다면 어떻게 해야 하나요?

pgAdmin 으로 두대의 디비서버의 sequence 값을 비교해보니..

원본서버에서..

table명이 master인데 sequence 명은 master2로 해놓았더라구요..

그런데 백업을해서 옮기면 sequence 명이 master2는 없고 master만 있습니다.

그리고 하나하나 열어서 확인해 보니.

create sequence 될때 start값도 다르고요..

pgAdmin에서 하나하나 sequence 를 create해 줘야 할까요..

아..정말 지금 1주일째 혼자 헤매고 있습니다..

고수님들 도와주십시요.

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

serial 형으로 만들어진 시퀀스는 테이블의 이름을 따라가게 되므로 이름이 달라질 수 있습니다.

예를 들어서 table1을 만들면서 serial 형을 만들면 table1_...... 처럼 시퀀스 이름이 만들어 집니다. 그 상태에서 table1의 이름을 table2로 만들면 현재 상태의 시퀀스는 table1_.....으로 유지되지만 이걸 덤프받아서 리스토어 하면 시퀀스의 이름이 table2_..... 으로 바뀝니다.

table1의 시퀀스 -> table1_..... 이지만 table2로 바꾼후 dump받으면 create table table2 안에 선언된 serial 을 따라서 table2_.... 으로 바뀌기 때문입니다. 별다른 해결책은 없구요. 시퀀스 따로 테이블(serial을 쓰지 않고) 따로 만들던지 시퀀스를 수정해 주는 수 밖에 없습니다.

시퀀스 따로 테이블 따로 만들게 되면 시퀀스를 만들고 테이블을 만들고 테이블의 serial 형이 있던 필드에 not null default nextval('시퀀스 이름') 이라고 해주면 됩니다.

 

이것 때문에 저도 고생하는 게 하나 있는데 -.-

serial을 쓰는 테이블 중 2개의 테이블은 시퀀스가 역순으로 증가해야 합니다. 그래서 항상 덤프&리스토어 후에는 alter sequence 시퀀스이름 increment -1; 을 해줘야 하죵..

처음에는 귀찮았는데 dump내용을 보고 나면 일단은 어쩔수 없겠구나 싶습니다 =_=; dump할 때 serial형으로 만들어진 시퀀스의 정보도 따라가주면 좋겠지만 적어도 7.4.x 까지는 안되는 모양입니다. 8.0에서는 안해봐서 모르겠구요..

 

그리고 7.4버전에서는 아니었는데 7.4.? 인지는 몰라도 -.-; bigserial 형이 나올 때 serial형으로 만드는 시퀀스도 자동으로 최대값이 bigint의 최대값이 되었습니다. start 값이 틀리고 그러신다고 하니 저처럼 특정 범위를 써야 하는 시퀀스가 있는데 serial형으로 초기에 지정된게 아닐까 싶네요.

신기배(소타)님이 2005-01-10 13:08에 작성한 댓글입니다.
이 댓글은 2005-01-10 13:10에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
5796룰 혹은 트리거 질문 [2]
장현성
2005-01-13
2203
5795RC5가 스을쩍~ 나왔네요 [3]
신기배
2005-01-12
2019
5793www.postgresql.org에서 한국이 나오지안아요. [3]
joesp
2005-01-11
2439
5790덤프시 sequence 가 다르게 덤프가 되는 문제가 생겨서요.. [1]
pg초보
2005-01-10
2679
5788PostgreSQL 8.0.0 RC4 !! [4]
장현성
2005-01-07
2547
5787자료형중에 point, real 에 대해서 설명 좀 해주세요. [2]
정수라
2005-01-07
2009
5786안녕하세요 [1]
김주미
2005-01-06
2032
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.023초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다