▶ 시퀀스(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부터 시작할 수 있었다.
'SQL' 카테고리의 다른 글
[PostgresSQL] 컬럼명, 컬럼 코멘트로 테이블 검색 (0) | 2024.06.05 |
---|---|
[mysql] Enum 타입 사용의 장단점 및 대안 (0) | 2024.04.12 |
[오라클] UPDATE 후 COMMIT한 쿼리 특정 시간대로 복구하기 (2) | 2022.09.14 |
[오라클] 테이블 백업 / 복사하기 (0) | 2022.08.26 |
[Oracle] 특정 컬럼이 존재하는 테이블, 뷰, 코멘트 찾기 (2) | 2022.05.12 |