by 정우성 [2018.04.25 17:35:32]
Select insert 문을 넣는데 sequence nextval 을 사용하는데 계속 증가되는 값을 넣고 싶은데 방법 있을까요 ?
1. 시퀀스를 대신해서 연속한 번호(중간에 빠지는 번호 없게)를 사용하고자 할 때, 흔히 사용하는 방법은 MAX + 1 입니다.
2. 시퀀스에 옵션으로 ORDER 나 NOCACHE 를 사용하면, 중간에 빈값이 생기는 것을 최소화 할 수 있습니다.
채번하는데 부하가 예상된다면 시퀀스를 쓰는 것이 제일 좋습니다.
마이그레이션처럼 일회성 작업이시면 MAX+ ROWNUM 등으로 작업하시고 시퀀스 수정하시면됩니다.
ALTER SEQUENCE seq_empno INCREMENT BY 1000 ; -- 시퀀스를 1000(현재SEQUENCE + INSERT ROW수)증가로 수정
SELECT seq_empno.NEXTVAL FROM DUAL; -- 시퀀스를 1000 증가
ALTER SEQUENCE seq_empno INCREMENT BY 1 ; -- 시퀀스를 다시 1씩증가로 수정
http://www.gurubee.net/lecture/1037