- 연속되는 숫자값을 자동으로 증감시키는 일련번호를 발생시키는 객체
- 형식) CREATE SEQUENCE 시퀀스명 [ INCREMENT BY N ] [ START WITH N ] [ MAXVALUE N| NOMAXVALUE N ] [ MINVALUE N| NOMINVALUE N ] [ CYCLE | NOCYCLE ] [ CACHE | NOCACHE ]
: 다음값 얻어오기
예1) CREATE SEQUENCE MY_SEQ1; SQL> SELECT MY_SEQ1.NEXTVAL FROM DUAL; NEXTVAL ---------- 1 SQL> SELECT MY_SEQ1.NEXTVAL FROM DUAL; NEXTVAL ---------- 2 SQL> SELECT MY_SEQ1.NEXTVAL FROM DUAL; NEXTVAL ---------- 3
: 현재값 얻어오기
SQL> SELECT MY_SEQ1.CURRVAL FROM DUAL; -- MY_SEQ1.CURRVAL : 현재 발생된 값 CURRVAL ---------- 3
DROP SEQUENCE 시퀀스명;
예)
DROP SEQUENCE MY_SEQ1;
예2)
SQL> CREATE SEQUENCE MY_SEQ2 INCREMENT BY 2;
-- 값이 2씩 증가
시퀀스가 생성되었습니다. SQL> SELECT MY_SEQ2.NEXTVAL FROM DUAL; NEXTVAL ---------- 1
SQL> SELECT MY_SEQ2.NEXTVAL FROM DUAL;
NEXTVAL ---------- 3 SQL> SELECT MY_SEQ2.NEXTVAL FROM DUAL; NEXTVAL ---------- 5 SQL> SELECT MY_SEQ2.NEXTVAL FROM DUAL; NEXTVAL ---------- 7 SQL> CREATE SEQUENCE MY_SEQ3 START WITH 100; -- 시작값이 100부터 시작 시퀀스가 생성되었습니다. SQL> SELECT MY_SEQ3.NEXTVAL FROM DUAL; NEXTVAL ---------- 100 SQL> SELECT MY_SEQ3.NEXTVAL FROM DUAL; NEXTVAL ---------- 101 SQL> SELECT MY_SEQ3.NEXTVAL FROM DUAL; NEXTVAL ---------- 102
수업)
1번
CREATE SEQUENCE MY_SEQ1;
SELECT MY_SEQ1.NEXTVAL FROM DUAL;
SELECT MY_SEQ1.CURRVAL FROM DUAL;
--결과
NEXTVAL
----------
1
CURRVAL
----------
1
2번
CREATE TABLE BOARD1(
NUM NUMBER(3) PRIMARY KEY, --글번호
WRITER VARCHAR2(20),--작성자
CONTENT VARCHAR2(50) --글내용
);
CREATE SEQUENCE SEQ_BOARD1;
INSERT INTO BOARD1 VALUES(SEQ_BOARD1.NEXTVAL,'길동','방가워');
INSERT INTO BOARD1 VALUES(SEQ_BOARD1.NEXTVAL,'길동','방가워');
COMMIT;
SELECT * FROM BOARD1;
--삭제
DROP SEQUENCE 시퀀스명;
예)
DROP SEQUENCE MY_SEQ1;
--결과
NUM WRITER CONTENT
---------- -------------------- --------------------
1 길동 방가워
2 길동 방가워