Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Расширения реляционной модели.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
248.32 Кб
Скачать

Автоматизация стандартных процедур.

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

Последовательностью (sequence) называется объект базы данных, который фактически представляет собой автоматически линейно изменяемое число. В случае, если изменение подразумевает автоматическое увеличение на единицу, такой частный случай называют счетчиком.

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

Наряду с текущим значением в определение последовательности также включается минимальное значение, максимальное значение и приращение. Обычно приращение равно 1, но оно также может быть любым целым числом, желательно отличным от нуля.

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

Последовательности создаются командой SQL CREATE SEQUENCE с положительным или отрицательным приращением. Синтаксис команды CREATE SEQUENCE:

CREATE SEQUENCE последовательность  [ INCREMENT приращение ]  [ MINVALUE минимум ] [ MAXVALUE максимум ]  [ START начало ]  [ CACHE кэш ] [ CYCLE ]

Ниже описаны необязательные секции команды CREATE SEQUENCE.

  • INCREMENT приращение. Числовое изменение текущего значения последовательности. Используется при вызове для последовательности функции nextvaK). Отрицательное приращение создает убывающую последовательность. По умолчанию приращение равно 1.

  • MINVALUE минимум. Минимальное допустимое значение последовательности. Попытка уменьшить текущее значение ниже заданного минимума приведет к ошибке или циклическому переходу к максимальному значению (если последовательность создавалась с ключевым словом CYCLE). По умолчанию минимальное значение равно 1 для возрастающих последовательностей или -2 147 483 647 для убывающих последовательностей.

  • MAXVALUE максимум. Максимальное допустимое значение последовательности. Попытка увеличить текущее значение выше заданного максимума приведет к ошибке или циклическому переходу к минимальному значению. По умолчанию максимальное значение равно 2 147 483 647 для возрастающих последовательностей или -1 для убывающих последовательностей.

  • START начало. Начальное значение последовательности, которым является любое целое число в интервале между минимальным и максимальным значениями. По умолчанию последовательность начинается с нижнего порога для возрастающих последовательностей или с верхнего порога для убывающих последовательностей.

  • CACHE кэш. Возможность предварительного вычисления и хранения значений последовательности в памяти. Кэширование ускоряет доступ к часто используемым последовательностям. Минимальное значение, заданное по умолчанию, равно 1; увеличение объема кэша приводит к увеличению числа кэшируемых значений.

  • CYCLE. При достижении нижнего или верхнего порога последовательность продолжает генерировать новые значения. В этом случае она переходит к минимальному значению (для возрастающих последовательностей) или к максимальному значению (для убывающих последовательностей).

min – 1 -> max

max + 1 -> min

Операции с последовательностями

  • nextval (<последовательность>). Изменяет текущее значение заданной последовательности и возвращает получившуюся величину;

  • currval (<последовательность>). Возвращает текущее значение последовательности, не меняя его;

  • setval (<последовательность>,<значение>). Присваивает текущее значение последовательности.