Назад    Оглавление    Далее

8. Другие объекты базы данных

Последовательности

Для автоматической генерации номеров строк в таблице можно использовать такой объект базы данных, как последовательность. Последовательность – это объект базы данных, который создается одним пользователем, но может совместно использоваться несколькими пользователями. Основное назначение последовательности - автоматическая генерация уникальных чисел, которые обычно применяются для получения значений первичного ключа.

Создание последовательности.

Синтаксис:

CREATE SEQUENCE последовательность

[INCREMENT BY n]

[START WITH n]

[{MAXVALUE n | NOMAXVALUE}]

[{MINVALUE n | NOMINVALUE}]

[{CYCLE | NOCYCLE}]

[{CACHE n | NOCACHE}]

где

последовательность

Имя последовательности.
INCREMENT BY n

Интервал между двумя последовательными номерами; n является целым числом. Если это предложение опущено, приращение при генерации чисел равно 1.

START WITH n

Первое генерируемое число в последовательности. Если это предложение опущено, последовательность начинается с 1.

MAXVALUE n

Максимальное значение, которое может генерировать последовательность.

NOMAXVALUE

Максимальное значение по умолчанию, равное .

MINVALUE n

Минимальное значение последовательности.

NOMINVALUE

Задает минимальное значение, равное 1.

CYCLE | NOCYCLE

Продолжается ли циклическая генерация чисел после достижения максимального или минимального значения.

CACHE n | NOCACHE

Количество чисел, которые Oracle7 распределяет предварительно и хранит в памяти. По умолчанию сервер хранит в кеш-памяти 20 значений.

Подчеркнутые параметры используются по умолчанию.

Пример: Создать последовательность S_DEPT_ID для первичного ключа таблицы S_DEPT. Параметр CYCLE использоваться не должен.

Проверка параметров последовательности.

Проверить значения параметров последовательности можно в таблице USER_SEQUENCES словаря данных. Столбец LAST_NUMBER содержит следующее свободное число.

 

Изменение последовательности.

Изменение шага приращения, максимального и минимального значений, режима циклической генерации значений и кэширования определяется командой ALTER SEQUNCE.

Синтаксис:

ALTER SEQUENCE последовательность

[INCREMENT BY n]

[START WITH n]>

[{MAXVALUE n | NOMAXVALUE}]

[{MINVALUE n | NOMINVALUE}]

[{CYCLE | NOCYCLE}]

[{CACHE n | NOCACHE}]

Примечание: Для изменения параметров необходимо быть владельцем последовательности или иметь для нее привилегию ALTER. Команда влияет только на числа, генерируемые после изменения. Чтобы начать генерацию с другого числа, необходимо удалить последовательность и создать заново.

Псевдостолбцы NEXTVAL CURRVAL.

Пример: Включение нового отдела под названием "Finance" в регионе 2.

Пример: Просмотр текущего значения последовательности S_DEPT_ID.

Примечания: Запись значений последовательности в сверхоперативную память (кэш) ускоряет доступ к ним. При использовании последовательностей возможные пропуски значений при генерации чисел по причинам: откат транзакции, отказ системы, использование последовательности другим пользователем или для другой таблицы.

Удаление последовательности.

Удаление последовательности из словаря данных производится с помощью команды DROP SEQUENCE. После удаления последовательности ссылки на нее невозможны.

Пример: Удаление последовательности S_DEPT_ID.

Для закрепления материала можно выполнить Практическое задание 12


Назад    Оглавление    Далее