'1'에 해당되는 글 1건

  1. 2017.03.08 Oracle 11g에서 sequence 초기값 1 고려사항

보통 테이블을 만들고 데이터를 넣기 위하여 SQL insert 구문에서 sequence의 nextval을 사용한다.

그런데 나는 이상하게 처음에 들어가는 값이 2부터 시작한다.

처음에 sequence를 정의할 때 start 값을 1로 주고 increment 값을 1로 하였기 때문에

새로운 row 데이터를 삽입하면 nextval이 2가 되어 처음부터 id가 2인 값부터 시작하는 것으로 판단이 된다.

어떻게 생각하면 당연한 것으로 생각이 되지만 id가 1부터 시작하는 것이 맞다고 생각이 든다.

그래서 1부터 시작하는 방법에 대하여 알아 보았다.

Sequence를 생성한 후

SQL> alter sequence board_sequence increment by -1 minvalue 0;

를 수행한다.

그러면 nextval의 값이 -1씩 증가하도록 설정하게 되고, nextval의 값이 0이 된다.

이때 다시 다음을 수행해 준다.

SQL> alter sequence board_sequence increment by 1 minvalue 0;

그러면 nextval의 값이 1부터 시작하게 된다.

다시 정리하면

1. sequence를 만든다.

2. SQL> alter sequence board_sequence increment by -1 minvalue 0; 를 수행

3. SQL> alter sequence board_sequence increment by 1 minvalue 0; 를 수행

4. 테이블에 데이터를 추가(insert)하면 id가 1부터 시작하게 된다.

Good Luck!

Posted by 세상을 살아가는 사람
,