Oracle Developer👨🏻‍💻
3.21K subscribers
607 photos
66 videos
2 files
483 links
🔝 канал о разработке в СУБД Oracle:
SQL, PL/SQL, оптимизация, архитектура и многое другое...

Backend-pro.ru - обучение по различным программам, связанных с backend-разработкой для ФЛ и ЮЛ.

Отец-основатель: @denis_dbd Кивилёв Денис
Download Telegram
Сиквенсы на сессию

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