Числові послідовності в 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>

*

*