послідовність oracle

Рейтинг: 0/5

Oracle використовує генератор послідовностей для автоматичної генерації унікальної послідовності чисел. які користувач може застосовувати в своїх операціях. Зазвичай послідовності використовуються для створення унікальних чисел для стовпця первинного ключа. Розглянемо генерацію номерів співробітників при вставці даних.

На замітку! Якби користувачі змушені були створювати послідовні числа програмно, то Oracle довелося б постійно блокувати і розблокувати запис, що зберігає максимальне значення таких послідовностей, щоб гарантувати упорядковане їх зростання. Таке блокування приводила б до необхідності очікування користувачами кожного чергового значення послідовності в транзакціях. Автоматична генерація послідовностей Oracle підвищує ступінь паралелізму бази даних.

Доступно декілька варіантів створення послідовності. Ми використовуємо просту послідовність vanilla. яка починається зі значення 10 000 і збільшується кожного разу на 1. Ця послідовність ніколи не буде повторюватися циклічно, оскільки кожен співробітник повинен мати унікальний номер.

Важливо! Існують два псевдостолбца, іменовані currval і nextval. які можна використовувати для опитування значень послідовності. Псевдостолбец currval дає поточне значення послідовності, а nextval - нове, або наступне, значення послідовності.

По-перше, створіть послідовність, як показано в наступному прикладі. Це звичайний спосіб застосування послідовності для створення унікального первинного ключа для стовпця.

По-друге, виберіть поточний номер послідовності, використовуючи наступний оператор:

По-третє, вставте новий рядок в таблицю employee. використовуючи nextval з послідовності employee_seq:

І, нарешті, упевніться, що стовпець employee_id був заповнений послідовністю employee_seq:

Зверніть увагу, що можна зіткнутися з послідовністю Oracle Database, зростаючої безперервно, але в її номерах можуть бути пропуски. Це пов'язано з тим, що база Oracle завжди зберігає в пам'яті 20 значень послідовності (за замовчуванням), які виходять з nextval. Якщо станеться збій бази даних, то номери, що знаходяться в пам'яті, втрачаються, і в послідовності утворюється пропуск.

Схожі статті