반응형
/********************************************************************************************
-- Title : [PGS9.2] Sequence 활용하기
-- Reference : dbrang.tistory.com
-- Key word : sequence 시퀀스
********************************************************************************************/
-- Title : [PGS9.2] Sequence 활용하기
-- Reference : dbrang.tistory.com
-- Key word : sequence 시퀀스
********************************************************************************************/
-- 초기화
drop table tbl_ttt_seq;
drop sequence seq_ttt;
-- 시퀀스 생성
CREATE SEQUENCE seq_ttt;
-- 시퀀스 확인
SELECT * FROM pg_class
where relkind = 'S';
-- 테이블 생성
CREATE TABLE tbl_ttt_seq
(
seq int not null default nextval('seq_ttt')
, a varchar(10)
);
-- 테이블 삭제시 자동 시퀀스 삭제 처리
-- 이거 안하면 테이블 삭제 후에도 존재
ALTER SEQUENCE seq_ttt OWNED BY tbl_ttt_seq.seq;
-- 데이터 입력
insert into tbl_ttt_seq (a) values ('aaa');
insert into tbl_ttt_seq (a) values ('bbb');
insert into tbl_ttt_seq (a) values ('ccc');
insert into tbl_ttt_seq (a) values ('ddd');
insert into tbl_ttt_seq (a) values ('eee');
select * from tbl_ttt_seq;
-- 시퀀스 현재값 확인
select currval('seq_ttt'), nextval('seq_ttt');
-- 시퀀스 변경
select setval('seq_ttt', 55);
select currval('seq_ttt'), nextval('seq_ttt');
-- 시퀀스 의존성 체크
SELECT p.relname, a.adsrc FROM pg_class p
JOIN pg_attrdef a ON (p.relfilenode = a.adrelid)
WHERE a.adsrc ~ 'seq_ttt';
-- 사용중인 시퀀스 삭제
alter table tbl_ttt_seq
alter column seq set default null;
drop sequence seq_ttt;
반응형