반응형
오라클은 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처럼 사용할 수 있다.
쉽지 않다.
오라클이 불편한게 많다.
반응형
'mysql' 카테고리의 다른 글
mysql 게시판 CRUD 기초 강좌 - 테이블에 인덱스 만들기 (0) | 2022.01.10 |
---|---|
mysql 게시판 CRUD 기초 강좌 - 테이블 만들기 (0) | 2022.01.10 |
오라클 맛보기 쿼리 (0) | 2021.04.13 |
mysql 계정 생성, 디비생성, 권한주기 (0) | 2021.03.21 |
mysql mariadb 디비 정기 백업 (0) | 2021.01.26 |