Навигация
Главная »  Oracle 

Числовые последовательности в Oracle


Источник: 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; / 


 

 Полное решение для социализации бизнеса Oracle Social Relationship Management предоставляется предприятиям в облачной среде Oracle Cloud.
 Программное обеспечение от Oracle сохраняет ведущую роль в централизованном управлении бизнес-процессами.
 Oracle в секторе лидеров рынка платформ для бизнес-анализа.
 Oracle покупает компанию Tangosol.
 Oracle AppsForum 2012 представит настоящее и будущее бизнес-приложений в России.


Главная »  Oracle 

© 2017 Team.Furia.Ru.
Частичное копирование материалов разрешено.