sequence와 trigger를 통해서 auto-increment를 생성 할 수 있다.


먼저, auto-increment를 시행해볼 table을 만든다.


CREATE TABLE templet(

seq NUMBER PRIMARY KEY,

str1 VARCHAR2(256) NOT NULL,

str2 VARCHAR2(256) NOT null

)


seq가 1로부터 시작해서 1씩 증가할 수 있도록 sequence를 생성한다. 


CREATE SEQUENCE templet_sequence

START WITH 1

INCREMENT BY 1;


테이블에 insert 할 때마다 seq column에 이 sequence 를 적용시킬 수 있도록 trigger를 걸어보도록 하자.


CREATE OR REPLACE TRIGGER templet_trigger

BEFORE INSERT

ON templet

REFERENCING NEW AS NEW

FOR EACH ROW

BEGIN

SELECT TEMPLET_SEQUENCE.NEXTVAL INTO :new.seq FROM dual;

END;


이제 테이블에 새로운 row가 insert 될 때마다 이 test_trigger가 실행될 것이고, 결과적으로 seq가 자동으로 1씩 증가하게 된다.

+ Recent posts