PostgreSQL

Jak skonfigurować automatyczny klucz podstawowy PostgreSQL??

Jak skonfigurować automatyczny klucz podstawowy PostgreSQL??
Mogą zaistnieć 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 „id”, które działają jako klucz podstawowy tabeli table. 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, jakie są automatyczne przyrosty mena 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 ( id SERIAL );

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

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 bazy „testowej”, 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 z kolumny podstawowej podczas wstawiania wartości. Rzućmy okiem na to.

Przykład 01:

Utwórz tabelę „Test” z dwiema kolumnami „id” i „nazwa”. Kolumna „id” została zdefiniowana jako kolumna klucza głównego, ponieważ jej typ danych to SERIAL. Z drugiej strony kolumna „nazwa” 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.

>> CREATE TABLE Test (identyfikator SERIAL PRIMARY KEY, nazwa TEXT NOT NULL);

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

>> INSERT INTO Test(name) VALUES ('Aqsa'), ('Rimsha'), ('Khan');

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żna zauważyć, że kolumna „id” 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 kolumny „id”. 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 nowy wiersz w tabeli „Test” i zwraca wartość pola „id”:

>> INSERT INTO Test(name) VALUES ('Hassam') RETURNING id;

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 kolumny „id” w poleceniu INSERT, a w sekcji WARTOŚCI podamy jej słowo kluczowe DEFAULT jako jego wartość. Poniższe zapytanie będzie działać tak samo po wykonaniu.

>> INSERT INTO Test(id, name) VALUES (DOMYŚLNE, 'Raza');

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 kolumna „id” została domyślnie zwiększona.

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 podamy nazwę tabeli i jej nazwę kolumny SERIAL w parametrach funkcji pg_get_serial_sequence(). Jak widać, określiliśmy tabelę „Test” i kolumnę „id”. Ta metoda jest używana w poniższym przykładzie zapytania:

>> WYBIERZ currval(pg_get_serial_sequence('Test', 'id'));

Warto zauważyć, że nasza funkcja currval() pomaga nam wyodrębnić najnowszą wartość sekwencji, czyli „5”. Poniższe zdjęcie jest ilustracją tego, jak może wyglądać przedstawienie could.

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.

Control & manage mouse movement between multiple monitors in Windows 10
Dual Display Mouse Manager lets you control & configure mouse movement between multiple monitors, by slowing down its movements near the border. Windo...
WinMouse lets you customize & improve mouse pointer movement on Windows PC
If you want to improve the default functions of your mouse pointer use freeware WinMouse. It adds more features to help you get the most out of your h...
Mouse left-click button not working on Windows 10
If you are using a dedicated mouse with your laptop, or desktop computer but the mouse left-click button is not working on Windows 10/8/7 for some rea...