Что такое последовательность?
Последовательность - это объект базы данных, который автоматически генерирует увеличивающийся список числовых значений в соответствии с правилом, указанным в спецификации последовательности.
Например, чтобы автоматически вставить номер сотрудника в столбец (EMPLOYEE_NO) таблицы, когда в таблицу вставляется новая запись, мы используем последовательность.
Значения последовательности генерируются в порядке возрастания или убывания.
Последовательности не связаны с таблицами; они используются приложением. Есть два значения подряд -
- CURRVAL - укажите текущее значение последовательности.
- NEXTVAL - предоставить следующее значение последовательности.
СИНТАКСИС
СОЗДАТЬ ПОСЛЕДОВАТЕЛЬНОСТЬ <имя_последовательности> [<список_параметров_последовательности>] [СБРОС ПО <подзапросу>]
ЭЛЕМЕНТЫ СИНТАКСИСА
ЭЛЕМЕНТЫ | ОПИСАНИЕ |
---|---|
<имя_последовательности> | Это название последовательности. |
[<список_параметров_последовательности>] | Он определяет один или несколько параметров последовательности. |
НАЧНИТЕ С | Он описывает начальное значение последовательности. |
ПРИРОСТ НА | Это определяет значение, которое будет увеличиваться от последнего значения, назначенного каждый раз, когда генерируется новое значение последовательности. По умолчанию - 1. |
MAXVALUE <максимальное_значение> | Это определяет максимальное значение, которое может быть сгенерировано последовательностью. |
НЕТ МАКС. ЗНАЧЕНИЕ | Если указано NO MAXVALUE, для возрастающей последовательности максимальное значение будет 4611686018427387903, а минимальное значение для убывающей последовательности будет -1. |
MINVALUE | Он определяет минимальное значение, которое может генерировать последовательность. |
ЦИКЛ | Директива CYCLE указывает, что порядковый номер будет перезапущен после достижения максимального или минимального значения. |
НЕТ ЦИКЛА | Параметр по умолчанию. Директива NO CYCLE указывает, что порядковый номер не будет перезапущен после достижения максимального или минимального значения. |
КЭШ <размер_кэша> / | Размер кеша указывает, какой диапазон порядковых номеров будет кэшироваться в узле. |
НЕТ КЭША | Вариант по умолчанию. Директива NO CACHE указывает, что порядковый номер не будет кэшироваться в узле. |
СБРОС ПО <подзапросу> | Он указывает, что во время перезапуска базы данных база данных автоматически выполняет <подзапрос>, и значение последовательности перезапускается с возвращенным значением. |
Пример -
Мы создадим последовательность с именем DHK_SCHEMA.EMP_NO, которая будет создавать увеличиваемое значение последовательности на +1 каждый раз, когда последовательность используется.
Сценарий последовательности -
СОЗДАТЬ ПОСЛЕДОВАТЕЛЬНОСТЬ DHK_SCHEMA.EMP_NO START С УВЕЛИЧЕНИЕМ 100 НА 1.
Здесь мы будем использовать объект «последовательность» в примере ниже, чтобы увеличивать значение сотрудника № на +1 каждый раз, когда выполняется запрос выбора. В запросе "nextval" может использоваться для генерации серийного номера или аналогичного типа требования.
Использование последовательности -
ВЫБЕРИТЕ DHK_SCHEMA.EMP_NO.nextval ИЗ DUMMY;
ВЫПУСК - 100,101,102
… Итак, при каждом выполнении вышеуказанного запроса выбора.