카테고리 없음

SEQUENCE에 대하여...

열하나요 2023. 8. 27. 13:34

1. SEQUENCE는 TABLE조회하듯이 조회하지 못함

SELECT AAA_SEQ.CURRVAL FROM AAA_SEQ;
SELECT * FROM AAA_SEQ;

이렇게 못함

 

2. 아래와 같이 할 수 있음

SELECT AAA_SEQ.CURRVAL FROM DUAL;
-- 시퀀스 현재 값 출력(마지막으로 성공적으로 출력된 값)

SELECT * FROM USER_SEQUENCES;
-- 유저가 가지고 있는 테이블 조회

 

3. CURRVAL은 임시값을 보관하고 있는 것이기 때문에 (보통 DUAL에서 조회함) 조회만 가능

INSERT INTO AAA VALUES('시퀀스3', AAA.SEQ.CURRVAL);

이렇게 INSERT가 안됨!

4. 그리고 NEXTVAL을 처음에 수행해야 CURRVAL이 조회가능

 

5. SEQUENCE의 값을 가져오던 테이블은 SEQUENCE의 값만 가져오는 것이므로, 

DROP TABLE을 하던, DROP SEQUENCE를 하던 서로 영향을 주지 않는다.

하지만 TABLE이 SEQUENCE의 값을 PRIMARY KEY로 설정해 놨다면 다시 SEQUENCE를 생성해 값을 가져올 때 오류가 날 수 있으므로

START WITH 넘버를 그 다음 숫자로 지정해서 가져올 수 있다.