시퀀스
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