Водич за САП ХАНА: Стварање секвенце

Anonim

Шта је секвенца?

Секвенца је објект базе података који аутоматски генерише увећану листу нумеричких вредности према правилу како је наведено у спецификацији секвенце.

На пример, за аутоматско убацивање броја запослених у колону (ЕМПЛОИЕЕ_НО) Табеле, када се нови запис убаци у табелу, тада користимо секвенцу.

Вредности секвенце се генеришу у растућем или силазном редоследу.

Секвенце нису повезане са табелама; користи их апликација. Постоје две вредности у низу -

  • ЦУРРВАЛ - Наведите тренутну вредност секвенце.
  • НЕКСТВАЛ - Наведите следећу вредност низа.

СИНТАКСА

CREATE SEQUENCE  [] [RESET BY ]

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

ЕЛЕМЕНТИ ОПИС
<име_последице> То је име низа.
[<листа_парамета_поредица>] Одређује један или више параметара секвенце.
ПОЧНИТЕ СА <старт_валуе> Описује почетну вредност секвенце.
ПОВЕЋАЊЕ ОД <инцремент_валуе> Ово одређује вредност коју треба повећати од последње вредности додељене за сваки пут када се генерише нова вредност секвенце. Подразумевано је 1.
МАКСВАЛУЕ <мак_валуе> Овим се одређује максимална вредност која се може генерисати низом. <мак_валуе> може бити између -4611686018427387903 и 4611686018427387902.
НЕМА МАКСВАЛУЕ Када се наведе НО МАКСВАЛУЕ, за растућу секвенцу максимална вредност ће бити 4611686018427387903, а минимална вредност за силазну секвенцу -1.
МИНВАЛА <мин_валуе> / БЕЗ МИНВАЛУЕ Одређује минималну вредност коју секвенца може генерисати. <мин_валуе> може бити између -4611686018427387904 и 4611686018427387902. Када се користи НО МИНВАЛУЕ, минимална вредност за растућу секвенцу је 1
ЦИКЛУС Директива ЦИЦЛЕ наводи да ће се редни број поново покренути након што достигне своју максималну или минималну вредност.
НЕМА ЦИКЛУСА Подразумевана опција. Директива НО ЦИЦЛЕ одређује да се редни број неће поново покретати након што достигне своју максималну или минималну вредност.
ЦАЦХЕ <цацхе_сизе> / Величина предмеморије одређује који ће се опсег бројева секвенци предмеморирати у чвору. <цацхе_сизе> мора бити цео број без потписа.
НО ЦАЦХЕ Подразумевана опција. Директива НО ЦАЦХЕ одређује да се редни број неће чувати у кешу у чвору.
РЕСЕТ ПО <супкуери> Наводи да током поновног покретања базе података база података аутоматски извршава <подупит> и вредност секвенце се поново покреће са враћеном вредношћу.

Пример -

Направићемо секвенцу са именом ДХК_СЦХЕМА.ЕМП_НО, која ће створити увећану вредност секвенце за +1 сваки пут, када се секвенца користи.

Скрипта секвенце -

CREATE SEQUENCE DHK_SCHEMA.EMP_NO START WITH 100 INCREMENT BY 1. 

Овде ћемо користити „секвенцу“ објекта у доњем примеру да бисмо повећали вредност запосленог не за +1 сваки пут када се изврши упит за одабир. У упиту, „нектвал“ се може користити за генерисање серијског броја или исту врсту захтева.

Употреба секвенце -

SELECT DHK_SCHEMA.EMP_NO.nextval FROM DUMMY;

ИЗЛАЗ - 100,101,102

... Дакле, при сваком извршавању горе наведеног изаберите упит.