Search
Duplicate

자동 채번(AUTO_INCREMENT) 컬럼 요건 및 특이사항

문서번호 : 11-729528

Document Information

최초 작성일 : 2022.05.13
최종 수정일 : 2022.07.14
이 문서는 아래 버전을 기준으로 작성되었습니다.
SinglestoreDB : 7.8

Goal

auto_increment 컬럼의 요건과 특이사항을 알아본다

Solution

AUTO_INCREMNT 컬럼으로 지정하기 위한 요건
bigint 타입이어야 함, 이보다 스케일이 작은 정수라면, 이것을 무시하고 bigint로 변환함
해당 컬럼은 index가 지정되어야 함
특이 사항
시작값의 설정은 테이블 생성(CREATE TABLE)시 가능하며, 참조 테이블만 유효하고, 이외는 무시됨
어그리게이터 별로 순차 순증한 값을 생성하며 최소값은 1임
Uniqueness 보장은 constraint 설정이 필요함
연속적, 순차적 증가를 보장하지 않음 값은 커지지만, 어그리게이터에 따라 각각 다른 범위(시작-끝)로 관리됨
-- MA, CA에서 각각 3건씩 INSERT 시킨 후 조회한 결과 singlestore> select * from tb order by b; +-------------------+------+---------+ | a | b | c | +-------------------+------+---------+ | 1 | 1 | from MA | | 2 | 2 | from MA | | 3 | 3 | from MA | | 31525197391593473 | 4 | from CA | | 31525197391593474 | 5 | from CA | | 31525197391593475 | 6 | from CA | +-------------------+------+---------+ 6 rows in set (0.02 sec)
SQL
복사
약, 어그리게이터의 재기동이 발생하면, 재기동 된 어그리게이터의 시작 값은 큰 범위 뒤로 건너뛰게 됨(일반테이블: 가까운 백만값, 참조테이블: 가까운 천값)
MA, CA 모두 재기동한 경우
-- MA, CA 모두 재기동후 MA, CA에서 각각 2건씩 INSERT 시킨 후 조회한 결과 singlestore> select * from tb order by b; +-------------------+------+---------+ | a | b | c | +-------------------+------+---------+ | 1 | 1 | from MA | | 2 | 2 | from MA | | 3 | 3 | from MA | | 31525197391593473 | 4 | from CA | | 31525197391593474 | 5 | from CA | | 31525197391593475 | 6 | from CA | | 1000000 | 7 | from MA | | 1000001 | 8 | from MA | | 31525197392000000 | 9 | from CA | | 31525197392000001 | 10 | from CA | +-------------------+------+---------+ 10 rows in set (0.01 sec)
SQL
복사
MA만 재기동한 경우
-- MA만 재기동후 MA, CA에서 각각 2건씩 INSERT 시킨 후 조회한 결과 singlestore> select * from tb order by b; +-------------------+------+---------+ | a | b | c | +-------------------+------+---------+ | 1 | 1 | from MA | | 2 | 2 | from MA | | 3 | 3 | from MA | | 31525197391593473 | 4 | from CA | | 31525197391593474 | 5 | from CA | | 31525197391593475 | 6 | from CA | | 1000000 | 7 | from MA | | 1000001 | 8 | from MA | | 31525197392000000 | 9 | from CA | | 31525197392000001 | 10 | from CA | | 2000000 | 11 | from MA | | 2000001 | 12 | from MA | | 31525197392000002 | 13 | from CA | | 31525197392000003 | 14 | from CA | +-------------------+------+---------+ 14 rows in set (0.00 sec)
SQL
복사

References

History

일자
작성자
비고
2022.05.13
kkh
추가 수정: wee
2022.06.10
kkh
이관 방안으로 내용 수정
2022.07.14
kkh
내용 정리 및 예시 추가