Eine serial
Spalte zieht standardmäßig nur die nächste Zahl aus einer Folge . Wenn Sie einen Wert hineinschreiben, wird der Standardwert nicht übernommen. Sie können einfach COPY
zum Tisch (siehe die Antwort von @Saravanan
). ) und aktualisieren Sie dann die Sequenz entsprechend. Einer Vorgehensweise:
SELECT setval('tbl_tbl_id_seq', max(tbl_id)) FROM tbl;
tbl_id
die fortlaufende Spalte der Tabelle tbl
ist , die aus der Sequenz tbl_tbl_id_seq
gezogen wird (Standardname).
Am besten in einer einzelnen Transaktion bei gleichzeitiger Belastung.
Beachten Sie, dass hier kein Off-by-1-Fehler vorliegt. Pro Dokumentation:
Fettdruck von mir.