PostgreSQL에서 MySQL의 AUTO_INCREMENT와 같은 자동증가 컬럼

자동증가 컬럼 생성

1. 테이블 생성시 Serial로 생성

MySQL의 AUTO_INCREMENT 와 같이 자동증가 값을 사용하기 위해선 컬럼을 serial 또는 bigserial 로 생성하면 된다

CREATE TABLE DEMO1 (SEQ SERIAL, NAME VARCHAR(20));
CREATE TABLE DEMO2 (SEQ BIGSERIAL, NAME VARCHAR(20));

이렇게 생성된 컬럼은 serial의 경우 4byte integer, bigserial은 8byte integer가 된다.
다만 Unique constraint를 가지길 원하거나 Primary Key가 되길 원한다면 따로 지정해 주어야 한다.

2. Sequence 생성 후 컬럼에 Default로 적용

Sequence를 생성하고 원하는 컬럼에 Default를 적용한다

CREATE SEQUENCE <sequence name>;
CREATE TABLE <table name> (
    <column name> integer NOT NULL DEFAULT nextval('<sequence name>')
);
ALTER SEQUENCE <sequence name> OWNED BY <table name>.<column name>;

이미 존재하는 테이블의 컬럼에는 다음과 같이 ALTER TABLE을 통해 적용한다.

CREATE SEQUENCE <sequence name>;
ALTER TABLE <table name> ALTER COLUMN <column name> SET DEFAULT nextval('<sequence name>');
ALTER SEQUENCE <sequence name> OWNED BY <table name>.<column name>;

최근에 추가된 SERIAL 값 조회하기

특정 Sequence의 값을 조회하려면

SELECT currval('<sequence name>');

최근 Sequence의 값을 조회하려면 간단하게

SELECT lastval();

INSERT 쿼리에서 RETURNING을 사용해도 된다.

INSERT INTO <table name> (NAME) VALUES('value') RETURNING <serial column>;

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

Scroll to Top