반응형

오라클은 auto_encrement가 없다. 머 이런...

 

그래서 시퀀스라는걸 만들어서 1씩 증가시켜줘야한다.

 

시퀀스부터 만들어보자.

 

CREATE SEQUENCE TABLE_NAME_ID_SEQ
  START WITH 1
  INCREMENT BY 1
  MAXVALUE 9999999999999999999999999999
  MINVALUE 1
  NOCYCLE;

 

잘 만들어졌는지 확인해보자

 

SELECT * FROM USER_SEQUENCES ;

 

이제 이걸 쓸대마다 TABLE_NAME_ID_SEQ.NEXTVAL 을 사용해서 1씩 증가해주면 된다. 하지만 쿼리에 이렇게 일일이 넣으면 귀찮다. 

 

그래서 트리거를 이용해서 자동으로 증가하도록 만들어보자.

 

CREATE OR REPLACE TRIGGER TABLE_NAME_INSERT
BEFORE INSERT 
ON TABLE_NAME FOR EACH ROW
BEGIN
SELECT TABLE_NAME_ID_SEQ.NEXTVAL INTO :new.id FROM dual;
END;

 

이렇게 해주면 mysql의 auto_encrement처럼 사용할 수 있다.

 

쉽지 않다. 

 

오라클이 불편한게 많다.

반응형

+ Recent posts