본문 바로가기
Database

티베로 시퀀스 생성, 삭제, 변경, 목록 조회

by jayden-lee 2019. 4. 12.
728x90

티베로 시퀀스 생성, 삭제, 변경, 목록 조회

티베로 데이터베이스에서 지원하는 시퀀스 스키마 객체의 생성, 삭제, 변경, 목록 조회하는 방법에 대해 알아보자

시퀀스(Sequence)

시퀀스(Sequence)는 순차적으로 부여할 수 있는 고유 값을 생성하는 스키마 객체이다. 시퀀스를 통해 생성된 값은 주로 기본 키(primary key) 또는 유일 키(Unique Key)에 값을 채워 넣는다.

 

시퀀스를 이용하는 방법은 시퀀스 이름에 의사 컬럼을 붙여서 사용한다.

 

의사 컬럼 종류

 

  • CURRVAL : 시퀀스의 현재 값을 반환한다.
  • NEXTVAL : 시퀀스의 현재 값을 증가시키고, 증가된 그 값을 반환한다.

시퀀스 생성

CREATE SEQUENCE [schema.]sequence_name
INCREMENT BY n
MINVALUE n
MAXVALUE n
[CYCLE | NOCYCLE]
[CACHE n | NOCACHE];
  • INCREMENT BY : 시퀀스의 값을 증가 시킬 때, 기준이 되는 값. 예를 들어, n이 5이면, 5씩 증가한다.
  • MINVALUE, MAXVALUE : 시퀀스의 값 최소값과 최대값을 설정한다.
  • NOCYCLE : 기본값은 NOCYCLE. 최대값(최소값)을 넘어서면, DCL(ALTER) 명령어를 사용하지 않는 이상 새로운 값을 생성할 수 없게 설정한다.
  • CACHE : 기본값은 NOCACHE. 데이터베이스 성능 향상을 위해 내부 메모리에 값을 캐시하는 것을 설정한다.

시퀀스 사용

시퀀스를 생성하고 NEXTVAL 의사 컬럼을 사용해서 시퀀스에 처음 접근하면 시퀀스는 초기 값을 반환한다.

-- 시퀀스 생성
CREATE SEQUENCE SEQ_TEST
INCREMENT BY 1
MINVALUE 1
MAXVALUE 10;

-- NEXTVAL 의사 컬럼을 통해 시퀀스 처음 접근
-- 1 출력
SELECT SEQ_TEXT.NEXTVAL FROM DUAL;

시퀀스 삭제

시퀀스를 삭제하는 방법은 다른 테이블, 인덱스 등 오브젝트와 유사하다.

DROP SEQUENCE sequence_name;

시퀀스 변경

시퀀스 변경은 ALTER 명령문을 사용해야 한다. 예를 들어, 최소(최대)값에 도달해서 더 이상 시퀀스 값을 생성할 수 없을 때 시퀀스 변경을 무조건 해야 한다.

 

반대로 NOCYCLE 옵션으로 변경하고 싶을 때도 사용할 수 있다.

ALTER SEQUENCE sequence_name
INCREMENT BY 10
MAXVALUE 99999999999
NOCYCLE
CACHE 200;

시퀀스 정보 조회

현재 데이터베이스에 생성된 시퀀스 오브젝트 목록을 조회하기 위해서는 다음과 같은 정적 뷰 조회를 통해 알 수 있다. 데이터베이스 사용자 권한에 맞게 뷰를 선택해서 사용하면 된다.

 

  • DBA_SEQUENCES
  • ALL_SEQUENCES
  • USER_SEQUENCES

특정 사용자가 소유한 시퀀스 목록 조회

-- 'jayden' 사용자가 소유한 시퀀스 조회
SELECT *
FROM ALL_SEQUENCES b
WHERE sequence_owner = 'jayden';

References

댓글