Search

자동 채번(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
내용 정리 및 예시 추가