Сброс последовательности в 0 (sequence to zero)

  • Oracle 9i, 10g, 11g

В Oracle нет команды сбросить счетчик последовательности в нулевое значение, за то есть другой вариант, и довольно простой. Например, у нас имеется последовательность ddl_log_seq.nextval, которую уже ни раз вызывали:

select ddl_log_seq.currval from dual;

   NEXTVAL
----------
      1132

В моем случае последовательность ddl_log_seq имеет текущее значение 1132. Зная это значение, изменяем инкремент последовательности:

alter SEQUENCE ddl_log_seq increment by -1132 nocache;

Затем, сбрасываем последовательность ddl_log_seq в 0:

select ddl_log_seq.nextval from dual;

   NEXTVAL
----------
         0

Возвращаем наш изначальный инкремент:

alter SEQUENCE ddl_log_seq increment by 1;
Реклама