기존 DB자료를 옮겼는데..시퀀스가 처음부터 다시 시작하여 문제가 발생하는군요.
이것을 최근 시퀀스값(예 : 1234)에서 새로 등록하는 자료는 1235부터 시작하게 변경할려면 어떻게 해줘야하나요?
시퀀스가 프라이머리키가 아니라 그런지 중복되어 문제가 발생했군요.
DB자료를 옮기면서...
시퀀스 함수인 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입문에 많은 도움이 있었습니다.
그냥 드롭하고 새로 만드시면서 시작 값을 지정하시는 것이 단순하지 않겠습니까? 단순한게 최고의 방법... ㅋㅋ