Обложка канала

Oracle Developer👨🏻‍💻

Все о разработке в СУБД "Oracle" SQL, PL/SQL, оптимизация, архитектура, сертификации и многое другое.

Oracle Developer👨🏻‍💻

3 года назад
Открыть в
Сиквенсы на сессию Сиквенс - это объект, используемый для генерации уникальных числовых значений. Чаще всего, используется для генерации значений 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