Heim >Datenbank >MySQL-Tutorial >Wie setze ich einen Postgres-Auto-Inkrement-Zähler zurück?

Wie setze ich einen Postgres-Auto-Inkrement-Zähler zurück?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-11 15:11:42566Durchsuche

How Do I Reset a Postgres Auto-Increment Counter?

PostgreSQL-Auto-Inkrementierungssequenzen zurücksetzen

PostgreSQL verwendet nicht AUTO_INCREMENT wie MySQL. Stattdessen werden Sequenzen verwendet, um automatisch inkrementierende Werte zu verwalten. Um den Startwert einer Sequenz zurückzusetzen, müssen Sie den Sequenznamen identifizieren, der mit der automatisch inkrementierenden Spalte Ihrer Tabelle verknüpft ist.

Der Versuch, ALTER TABLE product AUTO_INCREMENT = 1453 zu verwenden, schlägt fehl, da PostgreSQL diese Syntax nicht erkennt. Der Fehler „Relation ‚Produkt‘ existiert nicht“ kommt häufig vor.

Der Sequenzname folgt normalerweise dem Muster ${table_name}_${column_name}_seq. Für eine Tabelle namens „product“ mit einer „Id“-Spalte wäre die Sequenz „product_id_seq“.

Der richtige Befehl zum Zurücksetzen der Sequenz auf den Start bei 1453 lautet:

<code class="language-sql">ALTER SEQUENCE product_id_seq RESTART WITH 1453;</code>

Um den richtigen Sequenznamen zu finden, verwenden Sie den Befehl d im Befehlszeilentool psql. Beispielsweise zeigt d product die Tabellendefinition an, einschließlich des Sequenznamens, der von allen automatisch inkrementierenden Spalten verwendet wird (über eine Standardeinschränkung). Alternativ können Sie eine Abfrage wie SELECT pg_catalog.pg_get_serial_sequence('product', 'id'); verwenden, um den Sequenznamen direkt abzurufen.

Das obige ist der detaillierte Inhalt vonWie setze ich einen Postgres-Auto-Inkrement-Zähler zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn