Jak używać sekwencji Postgres

Jak używać sekwencji Postgres
Sekwencje to specjalny typ obiektu bazy danych, który generuje unikalne identyfikatory numeryczne. Sekwencja jest odpowiedzialna za generowanie głównych kluczy bazy danych. Sekwencje generują zamówienie numeryczne i istnieje możliwość, że wiele sekwencji zawiera tę samą liczbę, ale kolejność jest inna w każdej sekwencji. W tym artykule pokazuje użycie i działanie sekwencji w Postgres. Ponadto cytowane jest kilka przykładów, aby doświadczyć pracy sekwencji w Postgres.

Jak utworzyć sekwencję w Postgres

Sekwencje w Postgres są tworzone przez przestrzeganie składni komendy Utwórz sekwencję podaną poniżej:

Utwórz sekwencję

oznacza nazwę, którą chcesz ustawić dla sekwencji i zawiera rozszerzone właściwości dla tej specyficznej sekwencji. Opcje obsługiwane przez sekwencję tworzenia są wymienione w poniższej sekcji:

Opcje obsługiwane przez polecenie Utwórz sekwencję

Możliwe jest utworzenie sekwencji, która ma parametry zdefiniowane przez użytkownika przy użyciu polecenia Utwórz sekwencję. To polecenie obsługiwane są następujące opcje:

[Przyrost [przez]]: Ta opcja tworzy sekwencję z przyrostem określonej liczby numerycznej. Wartość domyślna to 1. Ponadto, jeśli wartość przyrostowa jest dodatnia, kolejność będzie rosła, podczas gdy kolejność malejąca może być uzyskana przez przekazanie wartości ujemnej.

[As SmallIt | Int | Bigint]: Parametr typu danych pozwala zdefiniować wzór sekwencji. Domyślnie bigint jest używany jako danych.

[MinValue] lub [bez mina wartości]: Minimalną wartość sekwencji można określić za pomocą tej opcji. Jeśli ta opcja pozostaje pusta, wówczas domyślna wartość maksymalna jest ustawiona zgodnie z określonym typem danych.

[MaxValue] lub [bez minimalnej wartości]: Ta opcja jest wzajemna do wyżej wymienionego, gdzie możesz ustawić maksymalną wartość dla swojej sekwencji. Ponadto, jeśli nie jest ustawiona, rozważana jest domyślna wartość typu danych.

[Zacznij [z] start]: Wskazuje wartość początku sekwencji.

[Cykl] lub [bez cyklu]: Jeśli ta opcja zostanie zdefiniowana, wartość sekwencji jest wznowiona po osiągnięciu maksymalnego limitu. Wartość domyślna w tym przypadku nie jest cykl i zwraca błąd po osiągnięciu określonej granicy sekwencji.

[POSIADANY PRZEZ ]: Ta opcja służy do powiązania sekwencji z określoną kolumną tabeli. W rezultacie po usunięciu kolumny sekwencja jest również usuwana automatycznie.

Nadchodzące sekcje lepiej wyjaśnią koncepcję sekwencji w Postgres.

Jak utworzyć sekwencję w Postgres

W tej sekcji przedstawiono kilka przykładów, aby stworzyć sekwencję z wielu perspektyw. Każdy przykład odnosi się do innego rodzaju sekwencji.

Przykład 1 : To polecenie tworzy sekwencję o nazwie „Linuxhint” o wartości początkowej 5 i wartości przyrostowej 2:

# Utwórz sekwencję Linuxhint Przyrost 2 Start 5;

Przykład 2: Ponadto, jeśli przyrost jest ustawiony na dowolną wartość ujemną (-), sekwencja rozpoczyna się od wartości maksymalnej i schodzi do określonej wartości minimalnej. Na przykład podane poniżej polecenie utworzy sekwencję z następującymi właściwościami:

- "Linux”Jako nazwa sekwencji

- "-2”Jako wartość przyrostowa, co oznacza, że ​​sekwencja opadnie z różnicą -2.

- "10”Jako wartość początkowa, ponieważ przyrost jest wartością ujemną, wartość maksymalna również wynosiłaby 10.

- Wreszcie stosuje się również parametr cyklu

# Utwórz sekwencję Linux Increment -2 Minvalue 2 MaxValue 10 Start 10 Cycle;

Jak uzyskać sekwencje bazy danych

Każda sekwencja jest powiązana z bazą danych. Na przykład jesteśmy zalogowani do Linuxhint baza danych i odzyskaliśmy wszystkie sekwencje za pomocą polecenia podanego poniżej:

W poniższym poleceniu, RelName I Nazwa_zadnicy sekwencji są uzyskiwane z PG_CLASS. PG_CLASS W Postgres zawiera informacje o tabelach o bazie danych.

W wyjściu zobaczysz dwie kategorie; Jedna odnosi się do sekwencji powiązanych z kluczowym kluczem tabel, a druga kategoria wskazuje sekwencje zdefiniowane przez użytkownika, które są tworzone osobno (jak w powyższej sekcji).

# Wybierz nazwę relname_name z pg_class gdzie relkind = 's';

Jak uzyskać następną/bieżącą wartość sekwencji

Istnieje kilka funkcji, które można wykorzystać do uzyskania bieżącej i kolejnej wartości sekwencji w Postgres. Funkcja NextVal drukuje następną wartość w sekwencji za pomocą składni podanej poniżej:

Wybierz NextVal („Sekwencyjna nazwa”)

Polecenie napisane poniżej wydrukuje następną wartość „Linuxhint” sekwencja. Jeśli nadal uruchamiasz polecenie NextVal, otrzymasz następną wartość zgodnie z warunkami przyrostu sekwencji. Jak „Linuxhint” Sekwencja jest zwiększana o 2, więc każda kolejna wartość zostałaby wydrukowana po zwiększeniu o 2.

# Wybierz NextVal („Linuxhint”);

Po uzyskaniu następnej wartości możesz uzyskać bieżącą wartość sekwencji za pomocą funkcji CURRVAL. CURRVAL wydrukuje wyjście, które jest uzyskiwane przez funkcję NextVal. Na przykład ostatnia funkcja Nextval pokazała wyjście 7, więc wynik CURL musi wynosić 7. Podobnie, niezależnie od wartości uzyskanej przy użyciu najnowszej funkcji NextVal, musi być wydrukowana przez Curval. Funkcja CURL działa na następującej składni:

Wybierz Currval („Sekwencyjna nazwa”)

Uzyskajmy bieżącą wartość sekwencji „Linuxhint” za pomocą wspomnianego powyżej polecenia:

# Wybierz currval („Linuxhint”);

Ponadto funkcja CURL zależy od funkcji NextVal. Jeśli funkcja NextVal nie jest jeszcze zastosowana do żadnej sekwencji, nie można użyć funkcji CURL, aby uzyskać bieżącą wartość. Na przykład, jeśli zastosujemy funkcję CURL na „Linux” sekwencja, na której nie zastosowaliśmy funkcji NextVal, wówczas wyświetlony zostanie następujący błąd.

# Wybierz currval („Linux”);

Ten błąd można rozwiązać, wykonując funkcję NextVal w sekwencji, ponieważ doświadczyliśmy go na „Linux” sekwencja i błąd jest rozwiązany.

# Wybierz NextVal („Linux”);
# Wybierz currval („Linux”);

Jak usunąć sekwencję

Możesz upuścić dowolną sekwencję z bazy danych, używając instrukcji sekwencji Drop Postgres. W przypadku upuszczenia tabeli sekwencja należąca do dowolnej kolumny zostanie usunięta. Dane tutaj polecenie upuszcza „Linux” sekwencja.

# Sekwencja upuść, jeśli istnieje Linux;

Wniosek

Ogólnie rzecz biorąc, co przychodzi ci do głowy po uzyskaniu sekwencja słowo? Uporządkowana lista liczb. Tak, koncepcja jest taka sama w Postgres. Ten post wyjaśnia pojęcie sekwencji i pokazuje jej podstawową funkcjonalność w Postgres. W tym przewodniku badaliśmy tworzenie sekwencji na wiele sposobów. Ponadto omawiane są również następne i bieżące funkcje wartości sekwencji.