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씩 증가하게 된다.
'Database > Oracle' 카테고리의 다른 글
Outer Join (LEFT, RIGHT, FULL OUTER JOIN) (0) | 2013.12.03 |
---|---|
Alter Table - 컬럼 추가, 삭제, 변경 (0) | 2013.02.13 |
Oracle 자동 증가 컬럼(Sequence) 사용 (0) | 2013.02.06 |
Oracle Tablespace (0) | 2013.01.13 |
user 생성과 테이블스페이스 지정 및 권한설정 (0) | 2013.01.13 |