Semantyka
Schema
Podaj schemat, w którym ma zostać utworzona sekwencja. Jeśli pominięto schema
, wówczas baza danych Oracle utworzy sekwencję we własnym schemacie.
sekwencja
Podaj nazwę tworzonej sekwencji.
Jeśli nie określisz żadnej z poniższych klauzul, wówczas zostanie utworzona sekwencja rosnąca, która rozpoczyna się od 1 i wzrasta o 1 bez górnego limitu. Określenie tylko INCREMENT
BY
-1 tworzy sekwencję malejącą, która zaczyna się od -1 i maleje bez dolnego limitu.
-
Aby utworzyć sekwencję rosnącą bez ograniczeń, w przypadku sekwencji rosnących pomiń parametr
MAXVALUE
lub określNOMAXVALUE
. W przypadku sekwencji malejących należy pominąć parametrMINVALUE
lub określićNOMINVALUE
. -
Aby utworzyć sekwencję zatrzymującą się na wstępnie zdefiniowanym limicie, w przypadku sekwencji rosnącej należy określić wartość parametru
MAXVALUE
. W przypadku sekwencji malejącej określ wartość parametruMINVALUE
. Należy również określićNOCYCLE
. Każda próba wygenerowania numeru sekwencji po osiągnięciu przez nią limitu powoduje wystąpienie błędu. -
Aby utworzyć sekwencję, która wznawia działanie po osiągnięciu wstępnie zdefiniowanego limitu, należy określić wartości parametrów
MAXVALUE
iMINVALUE
. Należy również określić parametrCYCLE
. Jeśli nie określisz parametruMINVALUE
, to domyślnie jest toNOMINVALUE
, czyli wartość 1.
INCREMENT BY Określa odstęp między numerami sekwencji. Ta wartość całkowita może być dowolną dodatnią lub ujemną liczbą całkowitą, ale nie może być 0. Wartość ta może mieć 28 lub mniej cyfr. Wartość bezwzględna tej wartości musi być mniejsza niż różnica MAXVALUE
i MINVALUE
. Jeśli wartość ta jest ujemna, to sekwencja maleje. Jeśli wartość jest dodatnia, to sekwencja wzrasta. Jeśli pominięto tę klauzulę, interwał ma wartość domyślną 1.
START WITH Określa pierwszy numer sekwencji do wygenerowania. Użyj tej klauzuli, aby rozpocząć sekwencję rosnącą od wartości większej niż minimalna lub aby rozpocząć sekwencję malejącą od wartości mniejszej niż maksymalna. W przypadku sekwencji rosnących wartością domyślną jest wartość minimalna sekwencji. W przypadku sekwencji malejących wartością domyślną jest wartość maksymalna sekwencji. Ta wartość całkowita może mieć 28 lub mniej cyfr.
Uwaga:
Ta wartość niekoniecznie jest wartością, do której cyklicznie przechodzi sekwencja rosnąca po osiągnięciu wartości maksymalnej lub minimalnej.
MAXVALUE Określa maksymalną wartość, jaką może wygenerować sekwencja. Ta wartość całkowita może mieć 28 lub mniej cyfr. MAXVALUE
musi być równa lub większa niż START
WITH
i musi być większa niż MINVALUE
.
NOMAXVALUE Określ NOMAXVALUE
, aby wskazać maksymalną wartość 1027 dla sekwencji rosnącej lub -1 dla sekwencji malejącej. Jest to wartość domyślna.
MINVALUE Określ minimalną wartość sekwencji. Ta wartość całkowita może mieć 28 lub mniej cyfr. MINVALUE
musi być mniejsza lub równa START
WITH
i musi być mniejsza niż MAXVALUE
.
NOMINVALUE Określ NOMINVALUE
, aby wskazać minimalną wartość 1 dla sekwencji rosnącej lub -1026 dla sekwencji malejącej. Jest to wartość domyślna.
CYCLE Określ CYCLE
, aby wskazać, że sekwencja kontynuuje generowanie wartości po osiągnięciu wartości maksymalnej lub minimalnej. Po tym, jak sekwencja rosnąca osiągnie wartość maksymalną, generuje wartość minimalną.
NOCYCLE Określ NOCYCLE
, aby zaznaczyć, że sekwencja nie może generować więcej wartości po osiągnięciu wartości maksymalnej lub minimalnej. Jest to wartość domyślna.
CACHE Określenie liczby wartości sekwencji, które baza danych wstępnie alokuje i przechowuje w pamięci dla szybszego dostępu. Wartość całkowita może zawierać 28 lub mniej cyfr. Minimalna wartość tego parametru to 2. W przypadku sekwencji cyklicznych wartość ta musi być mniejsza niż liczba wartości w cyklu. Nie można buforować więcej wartości, niż zmieści się w danym cyklu numerów sekwencji. Dlatego maksymalna wartość dozwolona dla CACHE
musi być mniejsza niż wartość określona za pomocą następującego wzoru:
(CEIL (MAXVALUE - MINVALUE)) / ABS (INCREMENT)
Jeśli wystąpi awaria systemu, wszystkie zbuforowane wartości sekwencji, które nie zostały użyte w zaangażowanych instrukcjach DML, zostaną utracone. Potencjalna liczba utraconych wartości jest równa wartości parametru CACHE
.
Uwaga:
Oracle zaleca stosowanie ustawienia CACHE
w celu zwiększenia wydajności, jeśli używasz sekwencji w środowisku Oracle Real Application Clusters.
NOCACHE Określ NOCACHE
, aby wskazać, że wartości sekwencji nie są wstępnie alokowane. Jeśli pominiesz zarówno CACHE
, jak i NOCACHE
, wówczas baza danych domyślnie buforuje 20 numerów sekwencji.
ORDER Określ ORDER
, aby zagwarantować, że numery sekwencji są generowane w kolejności żądania. Ta klauzula jest przydatna, jeśli używasz numerów sekwencji jako znaczników czasu. Gwarancja kolejności nie jest zwykle istotna dla sekwencji używanych do generowania kluczy głównych.
ORDER
jest konieczne tylko do zagwarantowania generowania w kolejności, jeśli używasz Oracle Real Application Clusters. Jeśli używasz trybu exclusive, to numery sekwencji są zawsze generowane w kolejności.
NOORDER Określ NOORDER
, jeśli nie chcesz gwarantować, że numery sekwencji będą generowane w kolejności żądania. Jest to wartość domyślna.