Сиквенсы на сессию
Сиквенс - это объект, используемый для генерации уникальных числовых значений. Чаще всего, используется для генерации значений primary key. Реализация в разных СУБД может быть разная, где-то скрыто от пользователя, где-то явно.
В 12.1 появилась опция Session (см скрин). По умолчанию сиквенсы создаются с опцией Global. В чем различие?
– Создается по умолчанию - global
create sequence my_seq;
– С инкрементом только в рамках сессии
create sequence my_seq session;
Cиквенс, с опцией Session, хранит значение только в рамках сессии. Проще говоря, в двух разных сессиях первый вызов nextval отдаст “1”. C global это будут разные значения.
Вполне может быть удобно при совместном использовании с global temporary table или когда нужен некий ID только внутри сессии и др. Пытливый ум найдет применение 😉
Как попробовать
-- Обратиться в разных сессиях
select my_seq.nextval from dual;
Cбросить последовательность (с 18с)
alter sequence my_seq restart;
Обсудить в чатике 💬
#sequence
Oracle Developer