SAP Учебное пособие по HANA: создание последовательности
Что такое последовательность?
Последовательность — это объект базы данных, который автоматически генерирует увеличенный список числовых значений в соответствии с правилом, указанным в спецификации последовательности.
Например, чтобы автоматически вставлять номер сотрудника в столбец (EMPLOYEE_NO) таблицы, когда в таблицу вставляется новая запись, мы используем последовательность.
Значения последовательности генерируются в порядке возрастания или убывания.
Последовательности не связаны с таблицами; они используются приложением. Есть два значения последовательно –
- CURRVAL – укажите текущее значение последовательности.
- NEXTVAL – укажите следующее значение последовательности.
СИНТАКСИС
CREATE SEQUENCE <sequence_name> [<sequence_parameter_list>] [RESET BY <subquery>]
ЭЛЕМЕНТЫ СИНТАКСИКА
ЭЛЕМЕНТЫ | ОПИСАНИЕ |
---|---|
Это название последовательности. | |
[ ] | Он определяет один или несколько параметров последовательности. |
НАЧАТЬ С | Он описывает начальное значение последовательности. |
ПРИРАЩЕНИЕ НА | Это определяет значение, которое будет увеличиваться по сравнению с последним значением, назначенным каждый раз, когда генерируется новое значение последовательности. Значение по умолчанию — 1. |
МАКСИМАЛЬНОЕЗНАЧЕНИЕ | Это определяет максимальное значение, которое может быть сгенерировано последовательностью. может быть между -4611686018427387903 и 4611686018427387902. |
НЕТ МАКСИМАЛЬНОГО ЗНАЧЕНИЯ | Если указано NO MAXVALUE, для восходящей последовательности максимальное значение будет 4611686018427387903, а минимальное значение для нисходящей последовательности будет -1. |
МИНЗНАЧЕНИЕ / НЕТ МИН.ЗНАЧЕНИЯ | Он определяет минимальное значение, которое может сгенерировать последовательность. может быть между -4611686018427387904 и 4611686018427387902. Когда используется NO MINVALUE, минимальное значение для возрастающей последовательности равно 1. |
ЦИКЛ | Директива CYCLE указывает, что порядковый номер будет перезапущен после достижения максимального или минимального значения. |
БЕЗ ЦИКЛА | Опция по умолчанию. Директива NO CYCLE указывает, что порядковый номер не будет перезапущен после достижения максимального или минимального значения. |
КЭШ / | Размер кэша определяет, какой диапазон порядковых номеров будет кэшироваться на узле. должно быть беззнаковым целым числом. |
НЕТ КЕША | Вариант по умолчанию. Директива NO CACHE указывает, что порядковый номер не будет кэшироваться в узле. |
СБРОС ПО | Он указывает, что во время перезапуска базы данных база данных автоматически выполняет и значение последовательности перезапускается с возвращенным значением. |
Пример -
Мы создадим последовательность с именем DHK_SCHEMA.EMP_NO, которая будет увеличивать значение последовательности на +1 каждый раз, когда последовательность используется.
Сценарий последовательности –
CREATE SEQUENCE DHK_SCHEMA.EMP_NO START WITH 100 INCREMENT BY 1.
Здесь мы будем использовать объект «последовательность» в приведенном ниже примере, чтобы увеличивать значение номера сотрудника на +1 каждый раз, когда выполняется запрос выбора. В запросе «nextval» может использоваться для генерации серийного номера или требования того же типа.
Использование последовательности –
SELECT DHK_SCHEMA.EMP_NO.nextval FROM DUMMY;
ВЫХОД – 100,101,102………Итак, при каждом выполнении вышеуказанного запроса выбора.