[PostgreSQL] 자동증가 방법

Jisoo Choi·2022년 7월 21일
0

Database

목록 보기
4/5

테이블을 생성하면서 자동으로 증가하는 ID를 PK로 잡기 위해 자동증가하는 방법을 찾아보았다.
PostgreSQL 자동 증가(AUTO INCREMENT)하는 방법은 아래의 3가지 방법이 있다.

  • Sequence
  • Serial
  • GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY

1. Sequence

[시퀀스 생성]

CREATE SEQUENECE tn_user_seq;

[특징]

  • 미리 시퀀스를 생성해야함
  • 테이블을 생성할 때 시퀀스 컬럼 정의 필요
  • 테이블을 삭제할 때 시퀀스를 따로 삭제해야함

2. Serial

[테이블 생성]

CREATE TABLE TN_USER (
    id SERIAL primary key,
    name varchar(255),
    created_date timestamp,
    modified_date timestamp
);

[특징]

  • serial 자료형을 사용하는 일련번호 처리는 표준 SQL이 아님

3. GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY

💡 ALWAYS

[테이블 생성]

CREATE TABLE TN_USER (
    id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
    name VARCHAR(255),
    created_date TIMESTAMP,
    modified_date TIMESTAMP
);

[특징]

  • 직접 id 필드에 값을 할당할 경우 오류
  • 강제로 입력하는 방법은 override system value 구문을 통해 직접 입력이 가능함
INSERT INTO tn_user_seq (name, created_date, modified_date) OVERRIDING SYSTEM VALUE VALUES('LSH', current_timestamp, current_timestamp);

💡 BY DEFAULT

[테이블 생성]

CREATE TABLE tn_user_seq (
    id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
    name VARCHAR(255),
    created_date TIMESTAMP,
    modified_date TIMESTAMP
);

[특징]

  • serial 과 동일한 작업
  • id 값을 강제로 입력하여 저장도 가능


Reference

profile
👩‍🚀 No worries! Just record

0개의 댓글