CREATE SEQUENCE

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śl NOMAXVALUE. W przypadku sekwencji malejących należy pominąć parametr MINVALUE 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ść parametru MINVALUE. 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 i MINVALUE. Należy również określić parametr CYCLE. Jeśli nie określisz parametru MINVALUE, to domyślnie jest to NOMINVALUE, 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.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.