PostgreSQL Sequenz auf aktuellen Stand bringen

edit | delete

Autor: Ingmar Pforr

eingetragen: Dienstag, 17. Juli 2012 um 18:28 Uhr (29/2012 Kalenderwoche)

geändert: Dienstag, 17. Juli 2012 um 18:32 Uhr (29/2012 Kalenderwoche)

Keywords: PostgreSQL Sequenz max Primary Key

Kategorien: DB: PostgreSQL,

Text:

Durch SQL Scripts Inserts mit Primary Key-IDs oder Einfügen von Daten mit PgAdmin (es müssen ebenfalls Primary Key-IDs gesetzt werden) wird die Sequenz nicht geupdatet, d.h. dieser Vorgang wird umgangen. Dann sind Sequenz und PK IDs nicht mehr synchron.


Mit diesem Befehl wird die Sequenz neu gesetzt, es muss nur Tabellenname und PK-Spalte bekannt sein, nicht der Sequenzname.

Quellcode:  

SELECT pg_catalog.setval(pg_get_serial_sequence('table_name', 'id'), (SELECT MAX(id) FROM table_name)+1);

http://stackoverflow.com/questions/244243/how-to-reset-postgres-primary-key-sequence-when-it-falls-out-of-sync

(Das +1 kann laut IP weggelassen werden, da so immer eine Lücke entsteht. Das implizite nextval bei der Datensatzerzeugung inkrementiert automatisch um 1. )