PostgreSQL에서 시퀀스(Sequence)를 사용하는 방법에 대해 알아보자.

 

 

- create : 시퀀스 생성

CREATE SEQUENCE [시퀀스명];

 

- alter :  시퀀스명 변경

ALTER SEQUENCE [기존 시퀀스명] rename to [새 시퀀스명];

 

- drop : 시퀀스 삭제

DROP SEQUENCE [시퀀스명];

 

- currval : 시퀀스 현재값

SELECT currval('시퀀스명');

 

- nextval : 시퀀스 다음값

SELECT nextval('시퀀스명');

 

ERROR: 오류:  "시퀀스명" 시퀀스의 currval 값이 현재 세션에 지정되어 있지 않습니다.
SQL state: 55000

  • 여기서 currval()를 사용하다가 위와 같은 에러가 발생할 수 있다.
  • 이럴 때는 nextval()를 한번 실행해주고 다시 한번 currval()을 실행시켜주면 정상적으로 작동한다.

 


- setval : 시퀀스 초기화

SELECT setval('시퀀스명', 1, true); -- nextval('시퀀스명') = 2
SELECT setval('시퀀스명', 1, false); -- nextval('시퀀스명') = 1
  • true : 초기화 후 nextval를 사용할때 초기화된 값(1)에서 +1을 하여 사용된다.
  • false : 초기화 후 nextval를 사용할때 초기화된 값(1)을 그대로 사용한다.

     


 
 


Reference
https://mine-it-record.tistory.com/341

+ Recent posts