Wie richte ich den PostgreSQL Auto-Increment-Primärschlüssel ein?

How Setup Postgresql Auto Increment Primary Key



Es kann vorkommen, dass Sie Tabellen in PostgreSQL erstellen und verwalten, wenn Sie bestimmte Werte für eine Spalte benötigen, die auf Anfrage generiert wird. Dies gilt insbesondere für id-Spalten, die als Primärschlüssel der Tabelle fungieren. Glücklicherweise ermöglicht der Pseudotyp SERIAL, eine automatisch inkrementierende Integer-Reihe bequem zu machen. Eine Serie ist eine Art von Datenbankobjekt in PostgreSQL, das eine Serie von Indizes oder Ganzzahlen erzeugt. Eine PostgreSQL-Sequenz erzeugt eine Zeichenfolge verschiedener Ganzzahlen, wodurch sie sich als Primärschlüssel beim Generieren einer neuen Tabelle eignet. Wir zeigen Ihnen, welche Auto-Increment-Menas in PostgreSQL verwendet werden, und verwenden in diesem Handbuch den Pseudotyp SERIAL.

Syntax:

Die allgemeine Syntax zum Erstellen des Auto-Increment-Primärschlüssels lautet wie folgt:







>>CREATE TABLE Tabellenname( Ich würdeSERIAL);

Schauen wir uns nun die CREATE TABLE-Deklaration genauer an:



  • PostgreSQL generiert zuerst eine Serienentität. Es erzeugt den nächsten Wert in der Reihe und legt ihn als Standardreferenzwert des Felds fest.
  • PostgreSQL wendet die implizite Einschränkung NOT NULL auf ein ID-Feld an, da eine Reihe numerische Werte erzeugt.
  • Das ID-Feld wird als Inhaber der Serie zugewiesen. Wenn das id-Feld oder die Tabelle selbst weggelassen wird, wird die Sequenz verworfen.

Um das Konzept der automatischen Erhöhung zu erhalten, stellen Sie bitte sicher, dass PostgreSQL auf Ihrem System gemountet und konfiguriert ist, bevor Sie mit den Abbildungen in diesem Handbuch fortfahren. Öffnen Sie die PostgreSQL-Befehlszeilen-Shell vom Desktop aus. Fügen Sie Ihren Servernamen hinzu, auf dem Sie arbeiten möchten, andernfalls belassen Sie ihn auf Standard. Schreiben Sie den Datenbanknamen, der auf Ihrem Server liegt, auf dem Sie arbeiten möchten. Wenn Sie es nicht ändern möchten, belassen Sie es als Standard. Wir werden die Testdatenbank verwenden, deshalb haben wir sie hinzugefügt. Sie können auch mit dem Standardport 5432 arbeiten, diesen aber auch ändern. Am Ende müssen Sie den Benutzernamen für die von Ihnen gewählte Datenbank angeben. Lassen Sie es auf Standard, wenn Sie es nicht ändern möchten. Geben Sie Ihr Passwort für den ausgewählten Benutzernamen ein und drücken Sie die Eingabetaste auf der Tastatur, um die Befehlsshell zu verwenden.







Verwenden des Schlüsselworts SERIAL als Datentyp:

Wenn wir eine Tabelle erstellen, fügen wir normalerweise das Schlüsselwort SERIAL nicht in das primäre Spaltenfeld ein. Das bedeutet, dass wir die Werte der Primärschlüsselspalte hinzufügen müssen, während wir die INSERT-Anweisung verwenden. Wenn wir jedoch beim Erstellen einer Tabelle das Schlüsselwort SERIAL in unserer Abfrage verwenden, sollten wir beim Einfügen der Werte keine primären Spaltenwerte hinzufügen müssen. Werfen wir einen Blick darauf.

Beispiel 01:

Erstellen Sie eine Tabelle Test mit zwei Spalten id und name. Die Spalten-ID wurde als Primärschlüsselspalte definiert, da ihr Datentyp SERIAL ist. Andererseits ist der Spaltenname als Datentyp TEXT NOT NULL definiert. Versuchen Sie den folgenden Befehl, um eine Tabelle zu erstellen, und die Tabelle wird effizient erstellt, wie in der Abbildung unten zu sehen.



>>TABELLE ERSTELLEN Test( Ich würdeSERIELLER PRIMÄRSCHLÜSSEL, Name TEXT NICHT NULL);

Fügen wir einige Werte in den Spaltennamen der neu erstellten Tabelle TEST ein. Wir werden der Spalten-ID keinen Wert hinzufügen. Sie können sehen, dass die Werte erfolgreich mit dem INSERT-Befehl eingefügt wurden, wie unten beschrieben.

>>EINFÜGEN IN den Test(Name)WERTE(„Aqsa“),('Rimscha'),('Khan');

Es ist Zeit, die Aufzeichnungen der Tabelle „Test“ zu überprüfen. Versuchen Sie die folgende SELECT-Anweisung in der Befehlsshell.

>>AUSWÄHLEN*FROM-Test;

In der folgenden Ausgabe können Sie feststellen, dass die Spalten-ID automatisch einige Werte enthält, obwohl wir aufgrund des Datentyps SERIAL, den wir für die Spalten-ID angegeben haben, keine Werte aus dem INSERT-Befehl hinzugefügt haben. So funktioniert der Datentyp SERIAL eigenständig.

Beispiel 02:

Eine andere Möglichkeit, den Wert der Spalte des Datentyps SERIAL zu überprüfen, besteht darin, das Schlüsselwort RETURNING im Befehl INSERT zu verwenden. Die folgende Deklaration erstellt eine neue Zeile in der Testtabelle und liefert den Wert für das id-Feld:

>>EINFÜGEN IN den Test(Name)WERTE('Hassam')RÜCKKEHRIch würde;

Durch Überprüfen der Datensätze der Tabelle Test mit der SELECT-Abfrage erhalten wir die untenstehende Ausgabe, wie im Bild angezeigt. Der fünfte Datensatz wurde der Tabelle effizient hinzugefügt.

>>AUSWÄHLEN*FROM-Test;

Beispiel 03:

Die alternative Version der obigen Einfügeabfrage verwendet das Schlüsselwort DEFAULT. Wir verwenden den Spalten-ID-Namen im INSERT-Befehl und im Abschnitt VALUES geben wir ihm das DEFAULT-Schlüsselwort als Wert. Die folgende Abfrage funktioniert bei der Ausführung genauso.

>>EINFÜGEN IN den Test(Ich würde, Name)WERTE(STANDARD, „Rennen“);

Lassen Sie uns die Tabelle erneut mit der SELECT-Abfrage wie folgt überprüfen:

>>AUSWÄHLEN*FROM-Test;

Sie können aus der Ausgabe unten sehen, dass der neue Wert hinzugefügt wurde, während die Spalten-ID standardmäßig inkrementiert wurde.

Beispiel 04:

Die Sequenznummer des SERIAL-Spaltenfelds finden Sie in einer Tabelle in PostgreSQL. Dazu wird die Methode pg_get_serial_sequence() verwendet. Wir müssen die Funktion currval() zusammen mit der Methode pg_get_serial_sequence() verwenden. In dieser Abfrage werden wir den Tabellennamen und seinen SERIAL-Spaltennamen in den Parametern der Funktion pg_get_serial_sequence() bereitstellen. Wie Sie sehen, haben wir den Tabellentest und die Spalten-ID angegeben. Diese Methode wird im folgenden Abfragebeispiel verwendet:

>>SELECT currval(pg_get_serial_sequence('Prüfen', 'Ich würde'));

Es ist erwähnenswert, dass unsere Funktion currval() uns hilft, den neuesten Wert der Sequenz zu extrahieren, der 5 ist. Das Bild unten zeigt, wie die Leistung aussehen könnte.

Abschluss:

In diesem Tutorial haben wir gezeigt, wie Sie den Pseudotyp SERIAL zum automatischen Inkrementieren in PostgreSQL verwenden. Mit einer Reihe in PostgreSQL ist es einfach, einen automatisch inkrementierenden Zahlensatz zu erstellen. Hoffentlich können Sie das SERIAL-Feld auf die Tabellenbeschreibungen anwenden, indem Sie unsere Illustrationen als Referenz verwenden.