SQL

[PostgresSQL] 시퀀스 (Sequence)

devkmee 2022. 1. 24. 11:45

▶ 시퀀스(Sequence)

시퀀스 생성 CREATE SEQUENCE 시퀀스명
시퀀스 다음값 (+1 증가) NEXTVAL('시퀀스명')
시퀀스 현재값 CURRVAL('시퀀스명')
시퀀스 수정 SETVAL('시퀀스명', 시퀀스값, [TRUE/FALSE])
시퀀스 삭제 DROP 시퀀스명SEQ_NAME


오라클에서는 시퀀스명.nextval()로 사용했었는데 Postgres는 문법이 다르다.

이걸 몰라서 한참 헤맸는데 다음에 참고할 수 있도록 기록해둬야겠다

 

 

 


 시퀀스 생성 예시

CREATE SEQUENCE 스키마.시퀀스명
MINVALUE 1
MAXVALUE 2147483647
START 1
CACHE 1
NO CYCLE;

 


 

시퀀스 수정 예시

SQL nextval() 사용 시 적용되는 값
SETVAL('시퀀스명', 1, FALSE) 1
SETVAL('시퀀스명', 1, TRUE) 2

SETVAL()은 잘 사용하지 않았는데 시퀀스 초기화 할 때 유용한 함수이다

 

이번에 시행착오를 겪으면서 값을 제대로 넣기 전에 시퀀스가 증가했었는데, SETVAL()을 써서 1부터 시작할 수 있었다.