unique key를 생성하는 방법은 DBMS마다 차이가 있다. MS-SQL은 IDENTITY를, MySQL은 auto_increment와 같이 쉽게 사용할 수 있는 방법이 있는데 오라클에서는 다음과 같이 유사하게 구현할 수 있다.
SQL> create table t ( 2 seqno number primary key, 3 id varchar(10), 4 name varchar(10));
테이블이 생성되었습니다.
SQL> create sequence t_seq;
주문번호가 생성되었습니다.
SQL> CREATE OR REPLACE TRIGGER t_trigger BEFORE INSERT ON t FOR EACH ROW 2 3 BEGIN 4 SELECT t_seq.NEXTVAL INTO :new.seqno FROM dual; 5 END; 6 /
트리거가 생성되었습니다.
seqno컬럼에 무엇을 지정하던(물론 t_seq.nextval는 사용하면 안된다.) 영향을 끼치지 못한다. t_seq.nextval만이 값으로 들어간다. SQL> insert into t values(NULL, 'maddog','강명규');
1 개의 행이 만들어졌습니다.
SQL> INSERT INTO T(ID, NAME) VALUES('MADDOG','강명규');
1 개의 행이 만들어졌습니다.
SQL> select * from t;
SEQNO ID NAME ---------- ---------- ---------- 1 maddog 강명규 2 MADDOG 강명규
SQL> | This article comes from dbakorea.pe.kr (Leave this line as is)
|