DB

[DB/PostgreSQL] 시퀀스 (Sequence) 사용하기 - 자동 증가 컬럼

kjun.kr 2023. 10. 6. 20:14
728x90
728x170

기본적인  Sequence 사용하는 방법

-- 시퀀스 생성
CREATE SEQUENCE seq_name

-- 시퀀스 삭제
DROP SEQUENCE seq_name

-- 다음 시퀀스 값 가져오기
nextval('seq_name')

-- 현재 시퀀스 값 가져오기 - 오류나는 경우 nextval('seq_name') 을 해주면 된다.
currval('seq_name')

-- 시퀀스 초기화 - true : nextval = +1, false : nextval = 1
setval('seq_name', seq_val, [true/false])

 
아래는 만들어진 시퀀스목록을 가져오는 쿼리문

select n.nspname as sequence_schema, 
          c.relname as sequence_name,
          u.usename as owner
from pg_class c 
     join pg_namespace n on n.oid = c.relnamespace
     join pg_user u on u.usesysid = c.relowner
where c.relkind = 'S'
     and u.usename = current_user;

 
테이블 생성시 시퀀스 이용하여 자동증가 컬럼 정의 하기

CREATE SEQUENCE table_name_id_seq;

CREATE TABLE table_name (
    id integer NOT NULL DEFAULT nextval('table_name_id_seq')
);

ALTER SEQUENCE table_name_id_seq OWNED BY table_name.id;

 

728x90
그리드형