728x90
기본적인 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
'DB' 카테고리의 다른 글
[DB/PostgreSQL] temporary table 사용량 확인 (0) | 2023.10.06 |
---|---|
[DB/PostgreSQL] 지정 시간 동안 수행된 쿼리 확인 (0) | 2023.10.06 |
[ORACLE] ORA-01861 : literal does not match format string 에러 (0) | 2023.07.17 |
[ORACLE] ORA-65096: 공통 사용자 또는 롤 이름이 부적합 합니다 에러 (0) | 2023.07.17 |
[DB/Oracle] 에러 ORA-01742: comment not terminated properly (0) | 2023.01.27 |