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………Така че при всяко изпълнение на горната заявка за избор.