Числові послідовності в Oracle, Інші СУБД, Бази даних, статті

Це ряд чисел, в якому кожне наступні число більше попереднього. З цього випливає, що кожне число в послідовності зустрічається всього один раз. Отже, послідовності дуже добре підходять для генерації первинних ключів для ідентифікації об’єктів в зсередини Бази даних.


В Oracle послідовності представлені у вигляді окремих сутностей бази даних. Для послідовності наступні параметри мають важливі значення:


1) Початкове значення послідовності


2) Крок послідовності


3) Мінімальне значення послідовності


Так само для послідовності можна задати циклічна вона чи ні. Якщо послідовність циклічна, то досягнувши максимального значення послідовності вона перейде до початкового значення послідовності. У разі якщо послідовність не циклічна і досягла свого кінця, то буде згенеровано помилка (ORA-08004).



Технічна частина


Створення послідовності:


Що б створити найпростішу послідовність необхідно виконати наступний запит:

CREATE SEQUENCE – говоримо що хочемо створити послідовність S_SAMPLE – з ім’ям S_SAMPLE START WITH 0 – починатися послідовність буде з нуля INCREMENT BY 1 – крок послідовності, це означає що наступні значення  – Послідовності на 1 буде більше попереднього MINVALUE 0 – мінімальне значення послідовності

Якщо необхідно задати обидва межі: максимальне значення послідовності і мінімальне значення послідовності, то при створенні можна вказати максимальне значення послідовності: MAXVALUE. Для того, щоб вказати циклічна чи послідовність можна при створенні вказати прапор CYCLE.


Приклад створення цикличной послідовності, з прямим завданням максимального значення послідовності:

CREATE SEQUENCE
S_TEST2
START WITH 0
INCREMENT BY 1
MINVALUE 0 MAXVALUE 400 – максимальне значення послідовності CYCLE – Це означає, що послідовність циклічна
 Зміна параметрів послідовності в Oracle:

Що б змінити параметри послідовності, існує наступні речення: ALTER SEQUENCE ім’я послідовності. В даному реченні можна використовувати всі ті ж складові що і в реченні CREATE SEQUENCE. Тільки за допомогою даної пропозиції не можна змінити поточні значення послідовності. Для того, щоб це зробити необхідно видалити послідовність і створити нову з заданим ім’ям і заданим значення послідовності зазначеної у частині в START WITH. Приклад зміни параметрів послідовності:

ALTER SEQUENCE – змінюємо послідовність  S_TEST – з ім’ям S_TEST INCREMENT BY 1 – встановлюємо крок послідовності в 1 MINVALUE 2 – задаємо мінімальне і максимальне значення послідовності
MAXVALUE 4

Видалення послідовності: Для видалення послідовності є пропозиція: DROP SEQUENCE ім’я послідовності


Приклад:

DROP SEQUENCE S_TEST2

Приклад використання послідовності для генерації первинного ключа:

CREATE OR REPLACE TRIGGER MY_TABLE_B_I_R – назва тригера
BEFORE
INSERT ON MY_TABLE – назва таблиці
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
begin – Id – первинний ключ – MY_TABLE_SQ – назва послідовності
select MY_TABLE_SQ.nextval into :new.id from dual;
end;
/

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*