Учебное пособие по SAP HANA: создание последовательности

Anonim

Что такое последовательность?

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

Например, чтобы автоматически вставить номер сотрудника в столбец (EMPLOYEE_NO) таблицы, когда в таблицу вставляется новая запись, мы используем последовательность.

Значения последовательности генерируются в порядке возрастания или убывания.

Последовательности не связаны с таблицами; они используются приложением. Есть два значения подряд -

  • CURRVAL - укажите текущее значение последовательности.
  • NEXTVAL - предоставить следующее значение последовательности.

СИНТАКСИС

СОЗДАТЬ ПОСЛЕДОВАТЕЛЬНОСТЬ <имя_последовательности> [<список_параметров_последовательности>] [СБРОС ПО <подзапросу>]

ЭЛЕМЕНТЫ СИНТАКСИСА

ЭЛЕМЕНТЫ ОПИСАНИЕ
<имя_последовательности> Это название последовательности.
[<список_параметров_последовательности>] Он определяет один или несколько параметров последовательности.
НАЧНИТЕ С Он описывает начальное значение последовательности.
ПРИРОСТ НА Это определяет значение, которое будет увеличиваться от последнего значения, назначенного каждый раз, когда генерируется новое значение последовательности. По умолчанию - 1.
MAXVALUE <максимальное_значение> Это определяет максимальное значение, которое может быть сгенерировано последовательностью. может находиться в диапазоне от -4611686018427387903 до 4611686018427387902.
НЕТ МАКС. ЗНАЧЕНИЕ Если указано NO MAXVALUE, для возрастающей последовательности максимальное значение будет 4611686018427387903, а минимальное значение для убывающей последовательности будет -1.
MINVALUE / NO MINVALUE Он определяет минимальное значение, которое может генерировать последовательность. может находиться в диапазоне от -4611686018427387904 до 4611686018427387902. Когда используется NO MINVALUE, минимальное значение для возрастающей последовательности равно 1.
ЦИКЛ Директива 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

… Итак, при каждом выполнении вышеуказанного запроса выбора.