So setzen Sie eine Sequenz in PostgreSQL zurück

So Setzen Sie Eine Sequenz In Postgresql Zuruck



Die Verwendung der PostgreSQL-Sequenz ist eine effektive Möglichkeit, mit einem automatisch inkrementierten Wert zu arbeiten, insbesondere für Primärschlüssel. Wenn der Startwert nicht definiert ist, beginnt die automatische Inkrementierung für INT bei 0. Sie können jedoch in Ihrer Spalte für die automatische Inkrementierung angeben, welcher Startwert für die Sequenz verwendet werden soll.

Wenn Sie außerdem in eine Situation geraten, in der Sie den nächsten Wert in der Sequenz ändern müssen, können Sie die Sequenz schnell zurücksetzen und angeben, mit welchem ​​Wert für den nächsten Eintrag in der Tabelle begonnen werden soll. Alle Details, die Sie zum Zurücksetzen einer Sequenz in PostgreSQL wissen sollten, finden Sie in diesem Beitrag. Schau mal!

Beispiel zum Zurücksetzen einer Sequenz in PostgreSQL

Mit einer INT-Spalte können Sie eine automatische Inkrementierungssequenz erstellen und diese als Primärschlüssel für Ihre Tabelle verwenden. Auf diese Weise müssen Sie beim Ausführen einer INSERT-Abfrage keine Werte eingeben, da die ganzzahligen Werte automatisch generiert werden. Nachdem die Sequenz erstellt wurde, können Sie mit dem Befehl ALTER SEQUENCE die Sequenz neu starten und einen neuen Startwert für die neuen Einträge angeben.







In diesem Beispiel arbeiten wir mit der folgenden Tabelle „user_details“. Unser Fokus liegt auf der Spalte „user_id“, einer automatisch inkrementierenden Sequenz beginnend bei 100.





Führen Sie den folgenden Befehl aus, um die verschiedenen Sequenzen in Ihrer Datenbank aufzulisten:





\ds

In unserem Fall zielen wir auf die Sequenz „user_id“.



Um weitere Details zur Sequenz zu erhalten, führen Sie die „select“-Abfrage aus, wie im Folgenden gezeigt:

SELECT * FROM sequence_name;

Wir können sehen, dass der letzte Wert in der bestehenden Sequenz 104 ist. Wir setzen diesen Wert zurück und definieren einen neuen Wert, den die neuen Einträge haben werden.

Um die PostgreSQL-Sequenz zurückzusetzen, verwenden Sie den folgenden Befehl:

ALTER SEQUENCE sequence_name RESTART WITH value;

Nehmen wir für unseren Fall an, dass wir die Sequenz neu starten und die neuen Einträge bei 20 beginnen möchten. Nachdem wir den folgenden Befehl ausgeführt haben, erhalten wir eine Ausgabe, wie im Folgenden gezeigt, die bestätigt, dass die Sequenz geändert wurde.

Wenn wir den vorherigen Befehl erneut ausführen, um die Details unserer Sequenz mithilfe der SELECT-Anweisung abzurufen, können wir sehen, dass der neue „last_value“ für diesen Fall der Wert ist, den wir mit dem ALTER-Befehl angegeben haben.

Fügen wir einen neuen Eintrag in unsere Tabelle ein, um zu sehen, was passiert. Das folgende Bild zeigt die INSERT-Abfrage und die Ergebnisse, die wir nach Ausführung der SELECT-Anweisung erhalten. Beachten Sie, dass die „user_id“ des neuen Eintrags auf 20 gesetzt ist. Bei allen neuen Einträgen, die wir vornehmen, wird die „user_id“ basierend auf dem letzten Wert, der 20 ist, generiert.

Wenn wir eine weitere Eingabe machen, ist ihre „user_id“ 21 und die Sequenz wird mit derselben Logik fortgesetzt. So setzen Sie eine Sequenz in PostgreSQL zurück. Beachten Sie, dass der Befehl „Zurücksetzen“ keine Auswirkungen auf die vorhandenen Datensätze hat. Es definiert lediglich den neuen Startwert für die Eingaben, die Sie nach dem Zurücksetzen der Reihenfolge vornehmen.

Abschluss

Mit PostgreSQL vereinfacht die Möglichkeit, die ganzzahligen Werte in Ihrer Primärschlüsselspalte automatisch zu generieren, die Dinge. Wenn Sie über eine vorhandene Sequenz verfügen, können Sie ALTER SEQUENCE verwenden
Befehl mit der Option RESTART WITH, um anzugeben, welche Sequenz Sie zurücksetzen möchten und welcher Wert als letzter Wert in der Sequenz festgelegt werden soll. Auf diese Weise wird für neue Einträge der ganzzahlige Wert basierend auf dem neuen letzten Wert generiert. Sehen Sie sich das vorgestellte Beispiel an, um zu verstehen, wie das Zurücksetzen einer PostgreSQL-Sequenz funktioniert.