CREATE SEQUENCE 시퀀스이름;
(DEFAULT 시퀀스값 : 1)
CREATE SEQUENCE 시퀀스이름 START WITH 290 INCREMENT BY 10;
(290부터 10씩 증가)
시퀀스.CURRVAL
:현재 시퀀스 값을 볼 수 있다 (SELECT 시퀀스.CURRVAL FROM DUAL)
시퀀스.NEXTVAL
: 주어진 증감 만큼 변화하도록 (기본 DEFAULT 1)
RELEASE 할 때,
-SEQUENCE를 새로 설정해서 하거나(1부터 시작하기위해)
-연결해서 하고싶을 경우에는 ROW의 갯수 COUNT하여 +1 하면서 EX) 게시판 번호, 글 번호 같은 것들
시퀀스 보충
주의!
시퀀스 값은 수정하거나 처음부터 다시 할 수 없어서 DROP 해야한다.
어디에서 쓸 때 마다 NEXTVAL은 쓸 때 마다 증가한다.
다시 시작하고 싶으면 SEQUENCE DROP 시키고 다시 해야한다.
호출 될 때마다 중복되지 않은 고유한 숫자를 리턴하는 객체이다
(부를 때마다 숫자가 하나씩 추가 된다거나,, 중복되지 않는 고유의 번호를 준다.)
INCREMENT BY 숫자 -증감숫자
START WITH 숫자 -최초시작
MAXVALUE N / NOMAXVALUE -생성 가능한 시퀀스 최대값
MINIVALUE N / NOMINVALUE -cycle일 경우 새로 시작값.
; 감소하는 시퀀스인 경우는 최소값.
CYCLE 시 MINVALUE 값 부터 시작된다.
CACHE N/ NOCACHE
1.시퀀스 생성
CREATE SEQUENCE EMP_SEQ INCREMENT BY 1 START WITH 100 MAXVALUE 9999 NOCACHE
; NOCYCLE;
SELECT SEQUENCE_NAME, MIN_VALUE, MAX_VALUE, INCREMENT_BY
; FROM USER_SEQUENCES;
2. NEXTVAL, CURRVAL
• NEXTVAL
문법 : 시퀀스명.NEXTVAL
- 지정된 시퀀스에서 순차적인 시퀀스 번호를 추출할 때 사용.
위에서 만들었던 시퀀스 설정에 따라 실행된다.
INSERT INTO EMP
; VALUES (EMP_SEQ.NEXTVAL,'홍길동','인사',NULL,SYSDATE, 2500,300,40);
; SELECT * FROM EMP
; WHERE EMPNO=100;
• CURRVAL (현재 번호 알기위해서)
• 문법 : 시퀀스명.CURRVAL
- 사용자가 방금 추출한 시퀀스 번호를 참조할 때 사용.
- 반드시 NEXTVAL에 의해서 번호를 추출한 후에 사용해야 한다.
어디에서 쓸 때 마다 NEXTVAL은 쓸 때 마다 증가한다.
3. 시퀀스 ( SEQUENCE ) 변경 (단 START 값을 초기화하는 것은 안된다.)
: 증분, 최대값, 최소값, 순환여부 , 캐시여부를 변경할 수 있다.
;: 시퀀스가 변경되면 다음 번 시퀀스 번호 추출부터 변경사항이 적용된다.
;: START WITH 옵션은 변경이 불가능하며, 필요시 시퀀스를 삭제하고 재 생성해야 한다.
;: MAXVALUE 값은 현재 시퀀스 번호보다 큰 번호로 지정해야 한다.
현재 시퀀스 값보다 큰 값을 입력해 주어야한다.
문법
ALTER SEQUENCE 시퀀스명
INCREMENT BY 숫자
MAXVALUE 숫자
NOCACHE
NOCYCLE;
ALTER SEQUENCE EMP_SEQ
; INCREMENT BY 2
; MAXVALUE 10000
; NOCACHE
; NOCYCLE;
;
;INSERT INTO EMP
; VALUES (EMP_SEQ.NEXTVAL,'백길동','인사',NULL,SYSDATE, 5500,300,40);
4.시퀀스 삭제
DROP SEQUENCE 시퀀스명;
게시판 0~100까지(+1) 한 것이 잘 못 되었다.
0~100까지(+2)
다시 하고 싶을 때 DROP.
create sequence dept_deptno_seq
; start with 10
; increment by 10
; maxvalue 100
; minvalue 5
; cycle
; nocache;
;
;insert into dept
; values(dept_deptno_seq.nextval,'aaa','seoul');
;select * from dept;
'DataBase > DBMS' 카테고리의 다른 글
13.트렌젝션(TRANSACTION) (0) | 2021.02.23 |
---|---|
12-2.뷰(View) (0) | 2021.02.22 |
12-1.인덱스 (0) | 2021.02.22 |
11. 서브쿼리(하위 질의문) : SQL의 꽃2 (WHERE절, HAVING절, FROM절-n-tier) (0) | 2021.02.22 |
10. JOIN(조인) : SQL의 꽃1 (조인, ANSI조인) (0) | 2021.02.22 |