* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
우분투 64비트 | |
8.4.3 | |
[도움말]-[버전정보] 확인 | |
c++, 큐브리드 메니져 |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
mysql 데이타 마이그레이션 이후에 테이블생성, 데이터 입력은 문제없이 잘 되었습니다.
문제는 PK가 자동증가로 설정되어있고 앞부분의 데이터는 테이블에서 삭제되어서 실제 인덱스는 3000번부터 시작합니다.
여기서 새로운 데이터를 insert하면 마지막 값에 +1로 들어가는게 아니라 앞부분에 비어있는 1부터 입력이 됩니다. 데이터가 1부터 꽉차 있는 테이블에는 유니크 어쩌구하는 에러가 뜨면서 입력이 되지 않구요.
데이터가 작은건 테이블 복사하고 입력하면 되긴하는데 많은건 이게 좀 ~~~~
처리 방법 좀 알려주세요.
안녕하세요. 답변이 늦어 죄송합니다.
아래와 같이 확인하신 후, 값을 변경하시면 될 것 같습니다.
1. 아래와 같은 질의로 해당 테이블에서 어떤 이름의 serial을 사용하고 현재 속성이 어떤지 확인합니다.
질의1] select name, current_val, increment_val, class_name from db_serial where class_name = 'TABLE_NAME';
2. 자동 증가 값을 사용하고 있는 컬럼의 MAX값을 확인하여, 앞으로 어떤 값부터 입력하면 될 것인지 결정합니다.
질의2] select max([자동_증가_값_사용_컬럼_이름]) from [TABLE_NAME];
3. 질의 2에서 확인한 max 값을 자동 증가 값이 시작될 값으로 설정합니다.
질의3] alter serial [SERIAL_NAME] start with [시작값];
추가 자세한 사항은 아래 매뉴얼을 확인해 주세요. 감사합니다
ALTER SERIAL : www.cubrid.com/manual/843/syntax/syntax_serial_alter.htm