시퀀스

시퀀스

MAX+1을 대체하는 SQL.

시퀀스

자동증가

CREATE SEQUENCE seq명
     START WITH 1 : 시작
     INCREMENT BY 1 : 증가
     NOCYCLE | CYCLE : 순환시킬거냐, 순환시키지 않을거냐.(보통 시퀀스는 프라이머리 키이기 때문에 순환하지 않음)
     NOCACHE | CACHE : 미리 20개를 생성해놓고 번호를 가져올거냐, 생성하지 않을거냐.
     MAXVALUE | MINVALUE
DROP SEQUENCE seq명

CREATE SEQUENCE my_no_seq
     START WITH 1
     INCREMENT BY 1
     NOCYCLE
     NOCACHE
     MAXVALUE 100
     MINVALUE 1;

SELECT my_no_seq.nextval FROM DUAL;
(처음에 쓰면 1을 가져옴, 다음에 가져오면 2를 가져옴)

SELECT my_no_seq.currval FROM DUAL;

삭제

DROP SEQUENCE my_no_seq;

DROP SEQUENCE dm_no_seq;
DROP TABLE diaryMessage;
DROP TABLE diaryMember;

—————————————-
CREATE TABLE diaryMember(
     id VARCHAR2(20),
     pwd VARCHAR2(10) CONSTRAINT dm_nn_pwd NOT NULL,
     name VARCHAR2(34) CONSTRAINT dm_nn_name NOT NULL,
     CONSTRAINT dm_pk_id PRIMARY KEY(id)
);

CREATE TABLE diaryMessage(
     no NUMBER,
     id VARCHAR2(20),
     subject VARCHAR2(1000) CONSTRAINT dm_nn_sub NOT NULL,
     msg VARCHAR2(4000) CONSTRAINT dm_nn_msg NOT NULL,
     year NUMBER,
     month NUMBER,
     day NUMBER,
     CONSTRAINT dm_pk_no PRIMARY KEY(no),
     CONSTRAINT dm_fk_id FOREIGN KEY(id) REFERENCES diaryMember(id)
);

————————————-
CREATE SEQUENCE dm_no_seq
     START WITH 1
     INCREMENT BY 1
     NOCYCLE
     NOCACHE;

—————————————————-
INSERT INTO diaryMember VALUES(‘hong’,’1234′,’홍길동’);
INSERT INTO diaryMember VALUES(‘shim’,’1234′,’심청이’);
INSERT INTO diaryMember VALUES(‘park’,’1234′,’박문수’);
————————————————————-
INSERT INTO diaryMessage VALUES(dm_no_seq.nextval,’hong’,’프로젝트 발표’,’4월 3일 조별 발표’,2015,3,31);
INSERT INTO diaryMessage VALUES(dm_no_seq.nextval,’hong’,’조 편성’,’4월 3일 3개조로 편성’,2015,3,31);
INSERT INTO diaryMessage VALUES(dm_no_seq.nextval,’hong’,’프로젝트 발표’,’4월 3일 조별 발표’,2015,4,1);
INSERT INTO diaryMessage VALUES(dm_no_seq.nextval,’shim’,’조 편성’,’4월 3일 3개조로 편성’,2015,3,31);
INSERT INTO diaryMessage VALUES(dm_no_seq.nextval,’park’,’프로젝트 발표’,’4월 3일 조별 발표’,2015,3,31);
INSERT INTO diaryMessage VALUES(dm_no_seq.nextval,’hong’,’조 편성’,’4월 3일 3개조로 편성’,2015,3,31);
INSERT INTO diaryMessage VALUES(dm_no_seq.nextval,’hong’,’프로젝트 발표’,’4월 3일 조별 발표’,2015,3,31);
INSERT INTO diaryMessage VALUES(dm_no_seq.nextval,’hong’,’조 편성’,’4월 3일 3개조로 편성’,2015,3,31);
INSERT INTO diaryMessage VALUES(dm_no_seq.nextval,’hong’,’프로젝트 발표’,’4월 3일 조별 발표’,2015,3,31);
INSERT INTO diaryMessage VALUES(dm_no_seq.nextval,’hong’,’조 편성’,’4월 3일 3개조로 편성’,2015,3,31);

SELECT * FROM diaryMessage