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