So verwenden Sie Postgres -Sequenzen

So verwenden Sie Postgres -Sequenzen
Sequenzen sind eine spezielle Art von Datenbankobjekt, die eindeutige numerische Kennungen generieren. Eine Sequenz ist für die Generierung der primären Schlüssel einer Datenbank verantwortlich. Die Sequenzen erzeugen die numerische Reihenfolge und es besteht die Möglichkeit, dass mehrere Sequenzen dieselbe Numerik enthalten, die Reihenfolge jedoch in jeder Sequenz unterschiedlich ist. Dieser Artikel zeigt die Verwendung und den Betrieb von Sequenzen in Postgres. Darüber hinaus werden mehrere Beispiele zitiert, um die Arbeit von Sequenzen in Postgres zu erleben.

So erstellen Sie eine Sequenz in Postgres

Die Sequenzen in Postgres werden erstellt, indem die unten angegebene Syntax des Befehls erstellen -Sequenz folgt:

Sequenz erstellen

Der bezeichnet den Namen, den Sie für eine Sequenz und die festlegen möchten Enthält die erweiterten Eigenschaften für diese spezifische Sequenz. Die durch Erstellen von Sequenz unterstützten Optionen werden im folgenden Abschnitt erwähnt:

Optionen, die vom Befehl erstellen Sequenz erstellen unterstützt werden

Es ist möglich, eine Sequenz zu erstellen, die benutzerdefinierte Parameter mithilfe der Befehl create-Sequenz erstellen. Die folgenden Optionen werden durch diesen Befehl unterstützt:

[Inkrement [von]]: Diese Option erstellt die Sequenz mit einem Inkrement einer bestimmten numerischen Zahl. Der Standardwert ist 1. Wenn der Inkrementwert positiv ist.

[Als smallint | Int | Bigint]: Mit dem Parameter Datentyp können Sie das Sequenzmuster definieren. Standardmäßig wird der Bigint als Datenatyp verwendet.

[Minvalue] oder [kein Minwert]: Der Mindestwert der Sequenz kann mit dieser Option angegeben werden. Wenn diese Option leer bleibt, wird der Standardwert des Standardwerts entsprechend dem angegebenen Datentyp festgelegt.

[MaxValue] oder [kein Minwert]: Diese Option ist gegen die oben genannte Option gegenseitig, wo Sie den maximalen Wert für Ihre Sequenz festlegen können. Wenn nicht festgelegt wird, wird der Standardwert des Datentyps berücksichtigt.

[Start [mit] Start]: Gibt den Wert des Beginns der Sequenz an.

[Zyklus] oder [kein Zyklus]: Wenn diese Option definiert ist, wird der Sequenzwert nach Erreichen der maximalen Grenze wieder aufgenommen. Der Standardwert ist in diesem Fall kein Zyklus und gibt nach Erreichen der angegebenen Grenze der Sequenz einen Fehler zurück.

[GEHÖRT ]: Diese Option wird verwendet, um die Sequenz mit einer bestimmten Spalte einer Tabelle zu verknüpfen. Wenn die Spalte gelöscht wird, wird die Sequenz auch automatisch gelöscht.

Die kommenden Abschnitte werden das Konzept einer Sequenz in Postgres besser klären.

So erstellen Sie eine Sequenz in Postgres

Dieser Abschnitt enthält mehrere Beispiele, um eine Sequenz aus mehreren Perspektiven zu erstellen. Jedes Beispiel bezieht sich auf eine andere Art von Sequenz.

Beispiel 1 : Dieser Befehl erstellt eine Sequenz namens "LinuxHint" mit dem Startwert von 5 und dem Inkrementwert von 2:

# Sequence LinuxHint Increment 2 Start 5;

Beispiel 2: Wenn das Inkrement auf einen negativen (-) Wert eingestellt ist. Beispielsweise erstellt der unten angegebene Befehl eine Sequenz mit den folgenden Eigenschaften:

- “Linux”Als Sequenzname

- “-2Als Inkrementwert, was bedeutet, dass die Sequenz mit einer Differenz von -2 abfällt.

- “10”Als Startwert, da der Inkrement ein negativer Wert ist, wäre der Maximalwert auch 10.

- Zuletzt wird auch der Zyklusparameter verwendet

# Sequence Linux Increment -2 Minwert 2 MaxValue 10 Start 10 Zyklus;

So erhalten Sie Sequenzen einer Datenbank

Jede Sequenz ist einer Datenbank zugeordnet. Zum Beispiel sind wir in die angemeldet LinuxHint Datenbank und wir haben alle Sequenzen mit Hilfe des unten angegebenen Befehls abgerufen:

Im unterbezeichneten Befehl die relName Und Sequence_Name werden von PG_CLASS. Der PG_CLASS In Postgres enthält die Informationen von Tabellen über die Datenbank (en).

Sie würden zwei Kategorien in der Ausgabe sehen; Man bezieht sich auf die Sequenzen, die dem Primärschlüssel der Tabellen zugeordnet sind, und die andere Kategorie gibt die benutzerdefinierten Sequenzen an, die separat erstellt werden (wie im obigen Abschnitt).

# RelName Sequence_name aus pg_class wobei relkind = 's';

So erhalten Sie den nächsten/aktuellen Wert einer Sequenz

Es gibt mehrere Funktionen, die verwendet werden können, um den Strom und den nächsten Wert einer Sequenz in Postgres zu erhalten. Die NextVal -Funktion druckt den nächsten Wert in einer Sequenz unter Verwendung der unten angegebenen Syntax:

Wählen Sie NextVal ('Sequenzname')

Der unten geschriebene Befehl druckt den nächsten Wert der "LinuxHint" Reihenfolge. Wenn Sie den Befehl "NextVal" weiter ausführen, erhalten Sie den nächsten Wert gemäß der Inkrementbedingung der Sequenz. Als die "LinuxHint" Die Sequenz wird um 2 erhöht, sodass jeder nächste Wert nach Inkrementierung durch 2 gedruckt wird.

# NextVal ('LinuxHint');

Sobald der nächste Wert erreicht ist, können Sie den aktuellen Wert der Sequenz mit der Currval -Funktion erhalten. Der Currval druckt den Ausgang, der durch die NextVal -Funktion erhalten wird. Zum Beispiel hat die letzte NextVal -Funktion Ausgabe 7 gezeigt, sodass das Currval -Ergebnis 7 sein muss. In ähnlicher Weise muss der Wert, den der Wert unter Verwendung der jüngsten NextVal -Funktion erhalten hat, von Currval gedruckt werden. Die Currval -Funktion arbeitet nach der folgenden Syntax:

Wählen Sie Currval ('Sequenzname')

Erhalten wir den aktuellen Wert der "LinuxHint" -Sequenz mit Hilfe des oben genannten Befehls:

# Wählen Sie Currval ('LinuxHint');

Darüber hinaus hängt die Currval -Funktion von der NextVal -Funktion ab. Wenn die NextVal -Funktion noch nicht auf eine Sequenz angewendet wird, können Sie die Currval -Funktion nicht verwenden, um den aktuellen Wert zu erhalten. Zum Beispiel, wenn wir die Currval -Funktion auf die anwenden "Linux" Die Sequenz, auf die wir die NextVal -Funktion nicht angewendet haben, wird der folgende Fehler angezeigt.

# Wählen Sie Currval ('Linux');

Dieser Fehler kann gelöst werden, indem die NextVal -Funktion auf der Sequenz ausgeführt wird, während wir sie auf dem erlebt haben "Linux" Sequenz, und der Fehler wird behoben.

# NextVal ('Linux');
# Wählen Sie Currval ('Linux');

So löschen Sie eine Sequenz

Sie können jede Sequenz aus Ihrer Datenbank ablegen, indem Sie die Drop -Sequence -Anweisung von Postgres verwenden. Im Falle des Ablegens der Tabelle würde eine Sequenz einer Spalte gelöscht. Der hier bereitgestellte Befehl lässt die fallen "Linux" Reihenfolge.

# Drop -Sequenz, wenn Linux existiert;

Abschluss

Was kommt Ihnen im Allgemeinen in den Sinn, nachdem Sie das bekommen haben Reihenfolge Wort? Eine geordnete Liste von Zahlen. Ja, das Konzept ist auch in Postgres gleich. Dieser Beitrag erklärt das Konzept der Sequenz und demonstriert seine grundlegende Funktionalität in Postgres. Wir haben die Sequenzerstellung in diesem Handbuch auf verschiedene Weise untersucht. Darüber hinaus werden die nächsten und aktuellen Wertfunktionen von Sequenzen diskutiert.