Jak skonfigurować automatyczny klucz podstawowy PostgreSQL?

How Setup Postgresql Auto Increment Primary Key



Mogą wystąpić sytuacje, w których tworzysz i zarządzasz tabelami w PostgreSQL, gdy potrzebujesz określonych wartości dla kolumny generowanej na żądanie. Byłoby to szczególnie prawdziwe w przypadku kolumn identyfikatora, które działają jako klucz podstawowy tabeli. Na szczęście pseudotyp SERIAL pozwala na wygodne automatyczne zwiększanie serii liczb całkowitych. Seria to typ obiektu bazy danych w PostgreSQL, który tworzy serię indeksów lub liczb całkowitych. Sekwencja PostgreSQL tworzy ciąg odrębnych liczb całkowitych, dzięki czemu nadaje się do użycia jako klucz podstawowy podczas generowania nowej tabeli. Pokażemy Ci, co oznacza automatyczne zwiększanie wartości w PostgreSQL i będziemy używać pseudotypu SERIAL w tym przewodniku.

Składnia:

Ogólna składnia tworzenia klucza podstawowego automatycznego przyrostu jest następująca:







>>CREATE TABLE nazwa_tabeli( NSSERYJNY);

Przyjrzyjmy się teraz bardziej szczegółowo deklaracji CREATE TABLE:



  • PostgreSQL najpierw generuje encję serii. Tworzy następną wartość w serii i ustawia ją jako domyślną wartość odniesienia pola.
  • PostgreSQL stosuje niejawne ograniczenie NOT NULL do pola id, ponieważ seria generuje wartości liczbowe.
  • Pole id zostanie przydzielone jako posiadacz serii. Jeśli pole id lub sama tabela zostanie pominięta, sekwencja zostanie odrzucona.

Aby poznać koncepcję automatycznego przyrostu, upewnij się, że PostgreSQL jest zainstalowany i skonfigurowany w twoim systemie, zanim przejdziesz do ilustracji w tym przewodniku. Otwórz powłokę wiersza poleceń PostgreSQL z pulpitu. Dodaj nazwę serwera, na którym chcesz pracować, w przeciwnym razie pozostaw ją domyślną. Wpisz nazwę bazy danych, która znajduje się na twoim serwerze, na którym chcesz pracować. Jeśli nie chcesz tego zmieniać, zostaw to jako domyślne. Będziemy korzystać z testowej bazy danych, dlatego ją dodaliśmy. Możesz także pracować na domyślnym porcie 5432, ale możesz go również zmienić. Na koniec musisz podać nazwę użytkownika dla wybranej bazy danych. Pozostaw to domyślnie, jeśli nie chcesz tego zmieniać. Wpisz hasło dla wybranej nazwy użytkownika i naciśnij Enter na klawiaturze, aby rozpocząć korzystanie z powłoki poleceń.







Używanie słowa kluczowego SERIAL jako typu danych:

Kiedy tworzymy tabelę, zwykle nie dodajemy słowa kluczowego SERIAL w polu kolumny podstawowej. Oznacza to, że musimy dodać wartości do kolumny klucza podstawowego podczas korzystania z instrukcji INSERT. Ale gdy używamy słowa kluczowego SERIAL w naszym zapytaniu podczas tworzenia tabeli, nie powinniśmy dodawać wartości kolumn podstawowych podczas ich wstawiania. Rzućmy okiem na to.

Przykład 01:

Utwórz tabelę Test z dwiema kolumnami id i nazwa. Identyfikator kolumny został zdefiniowany jako kolumna klucza głównego, ponieważ jej typ danych to SERIAL. Z drugiej strony nazwa kolumny jest zdefiniowana jako typ danych TEXT NOT NULL. Wypróbuj poniższe polecenie, aby utworzyć tabelę, a tabela zostanie utworzona wydajnie, jak widać na poniższym obrazku.



>>UTWÓRZ TABELĘ Test( NSSZEREGOWY KLUCZ PODSTAWOWY, nazwa TEKST NIE JEST NULL);

Wstawmy kilka wartości do nazwy kolumny nowo utworzonej tabeli TEST. Nie dodamy żadnej wartości do identyfikatora kolumny. Możesz zobaczyć, że wartości zostały pomyślnie wstawione za pomocą polecenia INSERT, jak podano poniżej.

>>WSTAW DO Testu(Nazwa)WARTOŚCI(„Aksa”),(„Rimsza”),('Chan');

Czas sprawdzić zapisy tabeli „Test”. Wypróbuj poniższą instrukcję SELECT w powłoce poleceń.

>>WYBIERZ*Z Test;

Z poniższych danych wyjściowych możesz zauważyć, że identyfikator kolumny automatycznie zawiera pewne wartości, mimo że nie dodaliśmy żadnych wartości z polecenia INSERT z powodu typu danych SERIAL, który określiliśmy dla identyfikatora kolumny. W ten sposób typ danych SERIAL działa samodzielnie.

Przykład 02:

Innym sposobem sprawdzenia wartości kolumny typu danych SERIAL jest użycie słowa kluczowego RETURNING w poleceniu INSERT. Poniższa deklaracja tworzy nową linię w tabeli Test i zwraca wartość pola id:

>>WSTAW DO Testu(Nazwa)WARTOŚCI(„Hassam”)POWRACAJĄCYNS;

Sprawdzając rekordy tabeli Test za pomocą zapytania SELECT, otrzymaliśmy poniższe dane wyjściowe, jak pokazano na obrazku. Piąty rekord został sprawnie dodany do tabeli.

>>WYBIERZ*Z Test;

Przykład 03:

Alternatywna wersja powyższego zapytania wstawiającego używa słowa kluczowego DEFAULT. Będziemy używać nazwy id kolumny w poleceniu INSERT, aw sekcji WARTOŚCI podamy jej słowo kluczowe DEFAULT jako jego wartość. Poniższe zapytanie będzie działać tak samo po wykonaniu.

>>WSTAW DO Testu(NS, Nazwa)WARTOŚCI(DOMYŚLNE, „Wyścig”);

Sprawdźmy ponownie tabelę za pomocą zapytania SELECT w następujący sposób:

>>WYBIERZ*Z Test;

Jak widać z poniższych danych wyjściowych, nowa wartość została dodana, podczas gdy identyfikator kolumny został domyślnie zwiększony.

Przykład 04:

Numer kolejny pola kolumny SERIAL można znaleźć w tabeli w PostgreSQL. Służy do tego metoda pg_get_serial_sequence(). Musimy użyć funkcji currval() wraz z metodą pg_get_serial_sequence(). W tym zapytaniu w parametrach funkcji pg_get_serial_sequence() podamy nazwę tabeli i nazwę jej kolumny SERIAL. Jak widać, określiliśmy tabelę Test i identyfikator kolumny. Ta metoda jest używana w poniższym przykładzie zapytania:

>>WYBIERZ krzywą(pg_get_serial_sequence(„Test”, „NS'));

Warto zauważyć, że nasza funkcja currval() pomaga nam wyodrębnić najnowszą wartość sekwencji, czyli 5. Poniższy obrazek ilustruje, jak może wyglądać wydajność.

Wniosek:

W tym poradniku pokazaliśmy, jak używać pseudotypu SERIAL do automatycznej inkrementacji w PostgreSQL. Używając serii w PostgreSQL, łatwo jest zbudować automatycznie zwiększający się zestaw liczb. Mamy nadzieję, że będziesz mógł zastosować pole SERIAL do opisów tabel, korzystając z naszych ilustracji jako odniesienia.