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 6376 게시물 읽기
No. 6376
시퀀스 기존 시퀀스에서 추가로 증가하게 설정하기?
작성자
이강성
작성일
2005-10-18 11:27
조회수
2,311

기존 DB자료를 옮겼는데..시퀀스가 처음부터 다시 시작하여 문제가 발생하는군요.

이것을 최근 시퀀스값(예 : 1234)에서 새로 등록하는 자료는 1235부터 시작하게 변경할려면 어떻게 해줘야하나요?

시퀀스가 프라이머리키가 아니라 그런지 중복되어 문제가 발생했군요.

DB자료를 옮기면서...

 

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

시퀀스 함수인 setval()를 이용해서 현재 값중 가장 큰 값과 맞춰주면 됩니다. 다음은 python으로 작성된 저희 팀 테스트코드중의 일부입니다.

def resetSerial(table, serialCol='id'):
    cursor = getCursor()
    cursor.execute('SELECT max(%s) FROM %s' % (serialCol, table) )
    newId = cursor.fetchone()[0]
    if not newId:
        cursor.execute("SELECT setval('%s_%s_seq', 1, False)" % (table, serialCol) )
    else:  
        cursor.execute("SELECT setval('%s_%s_seq', %%s)" % (table, serialCol), newId )
    commit()

PS. 혹 이강성 교수님이신가요?... 반갑습니다. 덕분에 Python입문에 많은 도움이 있었습니다.

최정대(whitekid)님이 2005-10-18 11:38에 작성한 댓글입니다.
이 댓글은 2005-10-18 11:41에 마지막으로 수정되었습니다.

그냥 드롭하고 새로 만드시면서 시작 값을 지정하시는 것이 단순하지 않겠습니까? 단순한게 최고의 방법... ㅋㅋ

박성철(gyumee)님이 2005-10-20 11:08에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6379initdb 할때요..... [1]
백성기
2005-10-21
2506
6378같은 쿼리와 다른 쿼리플랜 [2]
신기배
2005-10-20
2606
6377지난주 특정요일의 날짜를 뽑을려면 어떻게 할까요? [1]
webper
2005-10-20
2710
6376시퀀스 기존 시퀀스에서 추가로 증가하게 설정하기? [2]
이강성
2005-10-18
2311
6375Point In Time Recovery 사용해보고있던중... [1]
백진수
2005-10-17
1844
6374정규표현식 관련 문의~~ ^^* [5]
김영호
2005-10-17
2335
6373윈도우용 8.0.4 버젼에서 한글문제 [2]
김이수
2005-10-17
2538
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다