반응형

작업중 자동 번호를 입력할 일이 생기게 되었다..

아.. MSSQL이나 MYSQL은 편한데.. ㅜㅜ


1.

CREATE SEQUENCE SEQ_DUAL MINVALUE 1 MAXVALUE 99999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER  NOCYCLE;

  - SEQ_DUAL이라는 명의 시퀀스를 생성

  - 최소값은 1이고 최대값은 99999999 이고,

  - 시작숫자는 1이고 증가수는 1이다.

  - cache는 20이고 NOORDER는(ORDER를 사용하면 요청되는 순서대로 값을 생성.)

  - nocycle는 최대값에 도달한후 순환하지 않겠다. cycle는 순환을 하겠다.


2.

SELECT SEQ_DUAL.CURRVAL from dual;

  - 현재 시퀀스의 번호를 확인한다.


3.

CREATE

OR REPLACE TRIGGER DUAL_1_TRIGGER

BEFORE INSERT

ON DUAL_1

REFERENCING NEW AS NEW

FOR EACH ROW

BEGIN

 SELECT SEQ_DAUL.NEXTVAL INTO :NEW.ID_NUM FROM dual;

END;

  - SEQ_DUAL이라는 시퀀스를 DUAL_1테이블의 ID_NUM이라는 컬럼에 자동적용되게 설정하는 트리거 생성.


4.

DUOP SEQUENCE seq_dual;

  - 시퀀스 삭제.


반응형

'프로그래밍 > ORACLE' 카테고리의 다른 글

[ORACLE] INSERT SELECT  (0) 2015.04.09
[ORACLE] UPDATE SELECT  (0) 2015.04.09
[ORACLE] SESSION KILL  (0) 2013.12.20
[ORACLE] LPAD and INSTR  (0) 2011.08.09
[ORACLE] decode  (0) 2011.07.22

+ Recent posts