시퀸스 id 컬럼 유일성 자동 관리

박준우·2025년 9월 20일
0

1. 시퀸스 생성

CREATE SEQUENCE 시퀸스이름
    START WITH 1000 -- 시작 id 
    INCREMENT BY 1 -- 시퀸스 번호가 1씩 증가하도록 함
    NOCACHE; -- 메모리에 시퀸스값을 미리 할당하지 않아 
    		 -- 비정상 DB종료시 Id번호가 건너띄어 져서 저장되지 않음.
    

사용 예시

-- 1. 유저 기본 테이블용 시퀀스
CREATE SEQUENCE users_seq
    START WITH 1
    INCREMENT BY 1
    NOCACHE;

-- 2. 유저 자격증 테이블용 시퀀스
CREATE SEQUENCE user_cert_seq
    START WITH 1
    INCREMENT BY 1
    NOCACHE;

2. 데이터 삽입

사용 예시

INSERT INTO users_t (
    user_id, user_name, user_email, user_password, user_age, user_gender,
    user_state, user_grade, user_university_id, user_roadmap,
    user_credit_avg, user_major_credits_avg
) VALUES (
    users_seq.NEXTVAL,
    :user_name, :user_email, :user_password, :user_age, :user_gender,
    :user_state, :user_grade, :user_university_id, :user_roadmap,
    :user_credit_avg, :user_major_credits_avg
);

INSERT INTO user_certificates (user_certificate_id, user_id, certificate_id, issue_date, expiration_date, certificate_number, score)
    VALUES (user_cert_seq.NEXTVAL, users_seq.CURRVAL , :cert_id, :issue_date, :exp_date, :cert_num, :cert_score);

여기서 nextval을 사용하면 기존 id에서 +1을 해주고, currval을 사용하면 현재의 id값을 가져올 수 있다.

profile
DB가 좋아요

0개의 댓글