Шта је секвенца?
Секвенца је објект базе података који аутоматски генерише увећану листу нумеричких вредности према правилу како је наведено у спецификацији секвенце.
На пример, за аутоматско убацивање броја запослених у колону (ЕМПЛОИЕЕ_НО) Табеле, када се нови запис убаци у табелу, тада користимо секвенцу.
Вредности секвенце се генеришу у растућем или силазном редоследу.
Секвенце нису повезане са табелама; користи их апликација. Постоје две вредности у низу -
- ЦУРРВАЛ - Наведите тренутну вредност секвенце.
- НЕКСТВАЛ - Наведите следећу вредност низа.
СИНТАКСА
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
... Дакле, при сваком извршавању горе наведеног изаберите упит.