Database/Oracle
Oracle auto-increment trigger 형식
denodo
2013. 2. 6. 12:48
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씩 증가하게 된다.