Postgres Setval Sekwencja

Postgres Setval Sekwencja
Sekwencje postgresql są tworzone w celu automatycznego wstawiania lub aktualizacji wartości na wywołań funkcji, takich jak Funkcje NextVal, SetVal i Currval. W tym artykule będziemy omawiać funkcję setval obecną na liście funkcji sekwencji. Funkcja setval jest wywoływana w sekwencji, gdy musimy zmienić kolejną wartość w bieżącej sekwencji ze względu na niektóre warunki. Manualna zmiana w sekwencji odbywa się przez funkcję SETVAL w PostgreSQL.

Sekwencja Funkcje w SQL

Kiedy używamy kolumny w naszej tabeli, która ma wartości sekwencyjne, takie jak numer seryjny lub numer rolki, który zwiększa wzór, możemy utworzyć sekwencję, aby napotkać problem. W tej sekwencji podamy kilka ograniczeń zgodnie z naszymi potrzebami. Składnia SQL do tworzenia sekwencji jest następująca:

Nazwa serii musi być napisana na polecenie „Utwórz sekwencję” w powyższej składni. Wartość początkowa sekwencji zostanie następnie zapisana do polecenia „start z”, a następnie wartość przyrostowa do polecenia „Przyrost przez”. Do ustalenia minimalnej wartości lub wartości maksymalnej lub wartości maksymalnej lub wartości maksymalnej lub wartości maksymalnej lub wartości maksymalnej lub wartości maksymalnej lub wartości maksymalnej lub wartości maksymalnej lub wartości maksymalnej. Wyjaśnimy, czy sekwencja powinna się zakończyć, gdy osiągnie maksymalną wartość, czy powrócić do pierwotnej wartości w ostatnim wierszu sekwencji.

Kiedy musimy zmienić sekwencję pomiędzy pewnymi ograniczeniami lub błędami w programie, używamy kilku funkcji sekwencji w PostgreSQL. Są one również określane jako funkcje manipulacji sekwencją. Funkcje związane z koncepcją funkcji sekwencji są następujące:

  1. Funkcja NextVal.
  2. Funkcja Currval.
  3. Funkcja LastVal.
  4. Funkcja setval.

W tym przewodniku będziemy rozmawiać o funkcji setval w PostgreSQL.

Setval Sekwencja Funkcja manipulacji

Funkcja setval resetuje bieżącą zmienną licznika sekwencji, która utrzymuje przyrosty zgodnie z ograniczeniami ustawionymi przez użytkownika i daje jej sprawdzenie, w jaki sposób sekwencja powinna postępować po tym punkcie. Funkcja setval jest regulowana na nasze potrzeby i może przyjmować różne zestawy parametrów, takich jak nazwa sekwencji, następna wartość, którą zwróci funkcja NextVal, oraz ograniczenie algebry boolowskiej True i False.

Funkcja setval jest zwykle używana w połączeniu z poleceniem „Wybierz”, w którym użytkownik określa ograniczenia, a następnie określa kolejność, w której zmiana musi być dokonana w tabeli.

Funkcja setval manipuluje następną wartością funkcji NextVal, ponieważ bierze bieżącą wartość NextVal jako parametr. Jeśli trzeci parametr, który jest stanem wartości, która może być prawdziwa lub fałsz, jest określony, wówczas następna wartość następna wartość jest zmieniana zgodnie z danym stanem, który jest skompilowany w czasie wykonywania, gdy sekwencja jest umieszczona. Spójrzmy na składnię do wykonywania tej funkcji manipulacji w PostgreSQL:

>> Wybierz setval (nazwa sekwencji, następna wartość sekwencji, true lub false);

Powyższą składnię do wykonywania tej funkcji w PostgreSQL można również zapisać jako:

>> Wybierz setval (nazwa sekwencji, następna wartość sekwencji);

Możemy wybrać oba te wyrażenia, aby wykonać funkcję setval w środowisku PostgreSQL, ale drugie wyrażenie nie przyjmuje kontroli boolowskiej jako parametr i czyni go mniej wyrafinowanym stanem funkcji.

Teraz, gdy znamy składnię i działanie funkcji setval, przyjrzymy się podstawowym celowi tej funkcji w środowisku PostgreSQL.

Manipulacja sekwencją przez funkcję setval

Jak omówiliśmy powyżej pojęcie sekwencji i sposób, w jaki tworzymy sekwencję. W tym przypadku najpierw utworzymy sekwencję, aby zrozumieć i manipulować tę sekwencję przez funkcję setval. Stworzymy sekwencję dla liczb rolkowych uczniów w jednej klasie, pisząc ten kod, jak pokazano w poniższej migawce:

Jak widać z powyższej składni, skonstruowaliśmy sekwencję o nazwie „SQ 1”, która zaczyna się od liczby 001 i jest zwiększona o jedną przy każdej iteracji. Minimalna wartość dla tej sekwencji wynosi 0, a maksymalna wartość to 100. Ta sekwencja przechodzi w cyklu, co oznacza, że ​​po osiągnięciu maksymalnej wartości rozpocznie się od 001, ponieważ sugerowałoby to, że klasa jest pełna, a następny uczeń musi zostać dodany do innej klasy.

Załóżmy teraz, że uczeń spadnie z klasy po tym, jak jego wartości danych zostaną wstawiane przez funkcję NextVal, będziemy musieli zmienić sekwencję, aby przypisać numery roll w kolejności hierarchicznej przez funkcję SETVAL.

W tym fragmencie kodu ustawiliśmy następną wartość funkcji NextVal na „012”, określając ją jako false. Tak więc dane ucznia, które wprowadzimy po studenta „012”, który porzucił klasę, automatycznie otrzymujemy numer rolki „012”, jak widać na poniższej demonstracji:

Możesz zweryfikować dane wyjściowe z dołączonego obrazu.

Gdy wykonaliśmy zapytanie Wstaw do wprowadzenia wartości w tabeli, funkcja NextVal podała wartość ustaloną przez funkcję SETVAL w sekwencji SQ_1.

Różny Sposoby korzystania z funkcji setval

Jeśli musimy upewnić się, że ostatnia wartość funkcji NextVal jest prawdziwa i możemy dodać drugą wartość zgodnie z ograniczeniami zdefiniowanymi w sekwencji, możemy napisać to zapytanie na dwa różne sposoby w środowisku PostgreSQL:

  1. Funkcja setval bez stanu logicznego.
  2. Funkcja setval ze stanem logicznym.

Setval Funkcja bez stanu logicznego

Składnia do wykonywania funkcji SETVAL bez stanu logicznego podano poniżej:

>> Wybierz setval ('seq_1', 052);

Wyjście można zweryfikować na podstawie załączonego zrzutu ekranu.

W powyższej składni następna wartość funkcji Nextval zostanie ustawiona na „053”, co oznacza, że ​​wykorzystywana jest najnowsza wartość funkcji.

Funkcja setval ze stanem logicznym

Funkcję setval można również wykonywać za pomocą funkcji logicznej, instrukcją jest:

>> Wybierz setval ('seq_1', 052, true);

Wyjście można zweryfikować na podstawie załączonego zrzutu ekranu.

W obu powyższych przykładach następna wartość funkcji NextVal zostanie ustawiona na „053”, ponieważ spełnia ograniczenie, że wykorzystywana jest najnowsza wartość funkcji NextVal. W powyższym wyjściu, gdy wstawaliśmy następną wartość za pomocą zapytania do wstawu z funkcją NextVal w sekwencji po 52.

Wniosek

W tym artykule dowiedzieliśmy się o koncepcji sekwencji. Omówiliśmy, dlaczego używamy tych sekwencji w naszych tabelach do generowania wartości w tym artykule. Omówiono również różne funkcje sekwencji używane do zmiany sekwencji w PostgreSQL. Jednym z nich była funkcja setval, którą omówiliśmy w wielkiej próbie w tym artykule. Omówiono również różne rodzaje zastosowań tej funkcji. Ostatecznie przyjrzeliśmy się również, jak działa ta funkcja w środowisku PostgreSQL z różnymi rodzajami ograniczeń podanych w parametrze.