postgresql의 sequence에 대해서 다음과 같은 명령어들이 있다.
다음의 가상 테이블이 있다고 가정한다.
table명 : member
column명 : member_id, member_name
- 시퀀스 생성
-- serial4를 입력하여 자동으로 시퀀스를 생성하는 방법
CREATE TABLE member (
member_id serial4 NOT NULL,
member_name varchar NOT NULL,
);
-- mem_seq를 수동으로 생성하고 관리하는 방법
CREATE SEQUENCE mem_seq START 1;
CREATE TABLE member (
member_id int4 NOT NULL DEFAULT nextval('mem_seq'::regclass), -- 회원번호
member_name varchar NOT NULL,
);
- 시퀀스 초기화
-- 시퀀스를 초기화 하는 방법은 다음과 같다
ALTER SEQUENCE mem_seq RESTART WITH 1;
-- seral4로 자동으로 시퀀스를 관리한다면
-- 테이블을 초기화하는 동시에 시퀀스도 재설정 가능하다.
-- RESTART IDENTITY는 테이블과 연결된 시퀀스를 초기화 한다.
-- CASCADE는 관련된 모든 시퀀스에 영향을 준다.
TRUNCATE member RESTART IDENTITY CASCADE;
- 시퀀스 번호 조회
SELECT last_value FROM mem_seq;
- 시퀀스 변경
-- 다음 값으로 변경 (ex: 1 -> 2)
SELECT nextval('mem_seq')
-- 특정 값으로 변경 (ex: 1 -> 10)
SELECT setval('mem_seq', 10)
- 시퀀스 삭제
DROP SEQUENCE mem_seq;
'서버 > DB' 카테고리의 다른 글
오라클 복구 쿼리 (300) | 2024.01.31 |
---|---|
postgresql lock 테이블 조회 및 kill (959) | 2023.04.19 |
postgresql dump & restore (6) | 2023.02.16 |
오라클 connect by level 사용법 (616) | 2022.02.15 |
Maximum execution time of 120 seconds exceeded (2) | 2021.11.04 |
댓글