Oracle Database
Sekwencje
Szukaj…
Składnia
- UTWÓRZ SCHEMAT SEKWENCJI {KOLEJNOŚĆ INTEGERA | Zacznij od liczby całkowitej | MAXVALUE INTEGER | INTEGER NOMAXVALUE | MINVALUE INTEGER | INTEGER NOMINOWALNY | CYKL INTEGER | NOCYCLE INTEGER | DACH | NOCACHE | ZAMÓW | NOODER}
Parametry
Parametr | Detale |
---|---|
schemat | nazwa schematu |
przyrost o | odstęp między liczbami |
zacząć od | potrzebny pierwszy numer |
maksymalna wartość | Maksymalna wartość dla sekwencji |
wartość nomax | Maksymalna wartość jest domyślna |
wartość minimalna | minimalna wartość dla sekwencji |
wartość nominalna | minimalna wartość jest domyślna |
cykl | Resetuj do początku po osiągnięciu tej wartości |
nocycycle | Domyślna |
Pamięć podręczna | Limit wstępnego przydziału |
nocache | Domyślna |
zamówienie | Zagwarantować porządek liczb |
noorder | domyślna |
Tworzenie sekwencji: przykład
Cel, powód
Użyj instrukcji CREATE SEQUENCE, aby utworzyć sekwencję, która jest obiektem bazy danych, z którego wielu użytkowników może wygenerować unikalne liczby całkowite. Możesz użyć sekwencji, aby automatycznie wygenerować wartości klucza podstawowego.
Po wygenerowaniu numeru sekwencyjnego sekwencja jest zwiększana, niezależnie od zatwierdzenia lub wycofania transakcji. Jeśli dwóch użytkowników jednocześnie zwiększa tę samą sekwencję, wówczas numery sekwencyjne, które każdy użytkownik pozyskuje, mogą mieć luki, ponieważ numery sekwencyjne są generowane przez drugiego użytkownika. Jeden użytkownik nigdy nie może uzyskać numeru sekwencyjnego wygenerowanego przez innego użytkownika. Po wygenerowaniu wartości sekwencji przez jednego użytkownika, użytkownik ten może nadal uzyskiwać dostęp do tej wartości bez względu na to, czy sekwencja jest zwiększana przez innego użytkownika.
Numery sekwencji są generowane niezależnie od tabel, więc ta sama sekwencja może być użyta dla jednej lub wielu tabel. Możliwe jest, że poszczególne numery sekwencji będą wyglądały na pomijane, ponieważ zostały wygenerowane i wykorzystane w transakcji, która ostatecznie została wycofana. Ponadto pojedynczy użytkownik może nie zdawać sobie sprawy, że inni użytkownicy korzystają z tej samej sekwencji.
Po utworzeniu sekwencji można uzyskać dostęp do jej wartości w instrukcjach SQL za pomocą pseudokolumny CURRVAL, która zwraca bieżącą wartość sekwencji, lub pseudokolumny NEXTVAL, która zwiększa sekwencję i zwraca nową wartość.
Wymagania wstępne
Aby utworzyć sekwencję we własnym schemacie, musisz mieć uprawnienie systemowe CREATE SEQUENCE.
Aby utworzyć sekwencję w schemacie innego użytkownika, musisz mieć uprawnienie systemowe CREATE ANY SEQUENCE.
Tworzenie sekwencji: Przykład Poniższa instrukcja tworzy sekwencję customer_seq w przykładowym schemacie oe. Tej sekwencji można użyć do podania numerów identyfikacyjnych klienta, gdy wiersze są dodawane do tabeli klientów.
CREATE SEQUENCE customers_seq
START WITH 1000
INCREMENT BY 1
NOCACHE
NOCYCLE;
Pierwsze odniesienie do klientów_sekw. Kolejny przedział zwraca 1000. Drugie zwraca 1001. Każde kolejne odniesienie zwróci wartość o 1 większą niż poprzednie odniesienie.