Heim >Datenbank >MySQL-Tutorial >Wie setze ich einen Postgres-Auto-Inkrement-Zähler zurück?
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!