Последовательность – это объект базы данных, который создается одним пользователем, но может совместно использоваться несколькими пользователями.
Основное назначение последовательности - автоматическая генерация уникальных чисел, которые обычно применяются для получения значений первичного ключа.
Создание последовательности.
CREATE SEQUENCE имя_последовательности
[INCREMENT BY n ]
[START WITH n ]
[MAXVALUE n | NOMAXVALUE ]
[MINVALUE n | NOMINVALUE ]
[CYCLE | NOCYCLE ];
Где
INCREMENT BY n - интервал между двумя последовательными номерами;
n является целым числом. Если это предложение опущено, приращение при генерации чисел равно 1.
START WITH n - первое генерируемое число в последовательности. Если это предложение опущено, последовательность начинается с 1.
MAXVALUE n - максимальное значение, которое может генерировать последовательность.
NOMAXVALUE - максимальное значение по умолчанию, равное 1027.
MINVALUE n - минимальное значение последовательности.
NOMINVALUE - задает минимальное значение, равное 1.
CYCLE | NOCYCLE - продолжается ли циклическая генерация чисел после достижения максимального или минимального значения.
Подчеркнутые параметры используются по умолчанию.
Пример 1. Создать последовательность kod_podraz_pos для первичного ключа таблицы. Параметр CYCLE использоваться не должен.
CREATE SEQUENCE kod_podraz_pos
INCREMENT BY 1
START WITH 1
MAXVALUE 10
NOCYCLE;
Проверка параметров последовательности.
Проверить значения параметров последовательности можно в таблице USER_SEQUENCES словаря данных:
SELECT sequence_name, min_value, max_value, increment_by
FROM user_sequences;
Чтобы вывести список всех существующих последовательностей нужно создать запрос:
SELECT seguense_name
FROM user_sequences;
Изменение и удаление последовательности.
Изменение шага приращения, максимального и минимального значений, режима циклической генерации значений и кэширования определяется командой ALTER SEQUENCE.
ALTER SEQUENCE имя _ последовательности
[INCREMENT BY n]
[START WITH n]
[MAXVALUE n | NOMAXVALUE ]
[MINVALUE n | NOMINVALUE ]
[CYCLE | NOCYCLE ];
Для изменения параметров необходимо быть владельцем последовательности или иметь для нее привилегию ALTER. Команда влияет только на числа, генерируемые после изменения. Чтобы начать генерацию с другого числа, необходимо удалить последовательность и создать заново.
Удаление последовательности из словаря данных производится с помощью команды
DROP SEQUENCE имя_последовательности;
После удаления последовательности ссылки на нее невозможны.
Пример 2: Удаление последовательности Kod_Podraz_pos.
DROP SEQUENCE Kod_Podraz_pos;