홈 › SQL 실무 › 07 / 9

채번과 순번 관리

일자별 일련번호, 채번 테이블, 동시 요청
섹션 6진행 0 / 9

채번과 순번 관리: 일자별 일련번호, 채번 테이블, 동시 요청

주문번호 ORD-20260930-0001 은 날짜와 그날의 일련번호로 이루어집니다. 가장 쉬운 방법은 그날의 최대 번호에 1 을 더하는 것인데, 두 요청이 동시에 오면 같은 번호를 만듭니다. 이 레슨은 MAX+1 이 왜 깨지는지, 채번 테이블과 UPDATE 로 어떻게 줄을 세우는지, 번호를 본 트랜잭션과 묶을지 나눌지 고르는 기준을 다룹니다.

1. 왜 배우는가

업무 번호는 사람이 읽고 전화로 부르는 값입니다. 주문번호, 접수번호, 전표번호는 접두어, 날짜, 일련번호 순서로 붙이고 날이 바뀌면 1 부터 다시 시작하는 경우가 많습니다. 이런 번호를 만드는 코드는 대부분 처음에 "오늘 번호 중 최대값 + 1" 로 짜입니다. 개발 서버에서 혼자 눌러 볼 때는 문제가 없고, 운영에서 두 사람이 같은 순간에 주문하면 그때 터집니다.

이 레슨은 중급 11 시퀀스 레슨의 SEQUENCE, IDENTITY, AUTO_INCREMENT 문법과 번호 구멍 이야기를 이미 안다고 보고 시작합니다. 여기서는 그 문법 대신 날짜가 들어간 업무 번호를 안전하게 만드는 패턴만 다룹니다. 고급 08 MERGE 는 채번 행을 만드는 데 쓰고, 실무 06 트랜잭션 기초는 채번과 주문 INSERT 를 묶는 데 쓰입니다. 예제는 모두 가상의 주문 데이터입니다.