neu starten, so dass nextval wird die nächste freie id
Ich habe ein script, das kopiert die Tabelle, die Daten aus einer DB zur anderen, aber die ID-Spalte ist gesichert durch eine Sequenz so, wenn ein neuer Datensatz eingefügt wird, in der Ziel-Tabelle die nextval(seq)
ist wieder der falsche Wert.
Brauche ich zum aktualisieren der Sequenz, so dass es beginnt mit der nächsten verfügbaren ID.
Ich möchte etwas machen wie:
ALTER SEQUENCE seq_id RESTART WITH
(SELECT MAX(id) FROM tbl);
Den oben erzeugt einen syntax-Fehler jedoch.
Kann jeder jeden schlagen einen alternativen Ansatz?
Du musst angemeldet sein, um einen Kommentar abzugeben.
oder, noch besser, siehe diese Frage:
setval
Funktion, anstatt Sie dynamisch zu bauenalter sequence
Anweisung; einfacher, aber macht keinen wirklichen Unterschied, wenn du machst diese one-by-one.