Folgende Ausgangslage: Ich hab hier knapp 480 Tabellen und ca. 90 zu erstellende SEQUENCEs. Die SEQUENCE fängt meist nicht bei 1 an, da bereits einige viele Datensätze in den Tabellen vorhanden sind.
Nun zu meiner Frage. Ich möchte gerne wissen, wie es eleganter ist, den Startwert der SEQUENCE zu erstellen. Macht es Sinn, direkt bei Erstellung der SEQUENCE per start den Wert mitzugeben oder sollte man lieber die SEQUENCE mit Startwert 1 erstellen und im Nachhinein per setval() den korrekten Startwert setzen?
Und dann noch so nebenbei gefragt: angenommen, ich nutze die Variante CREATE SEQUENCE mit start != 1 und möchte gleich konkret den korrekten Startwert setzen. Was müsste ich dort eintragen, wenn ich z.B als letzten SERIAL 456 verwendet habe? Quasi dass als nächstes 457 genommen wird.
Danke und Gruß schon mal.
CaptnUnterhose
PS: Und ja, ich habe gestern sehr ausdauernd die entsprechenden Dokus gelesen.
Und dann noch so nebenbei gefragt: angenommen, ich nutze die Variante CREATE SEQUENCE mit start != 1 und möchte gleich konkret den korrekten Startwert setzen. Was müsste ich dort eintragen, wenn ich z.B als letzten SERIAL 456 verwendet habe? Quasi dass als nächstes 457 genommen wird.
Danke und Gruß schon mal.
CaptnUnterhose
PS: Und ja, ich habe gestern sehr ausdauernd die entsprechenden Dokus gelesen.
Ich kopiere mal aus der Doku:
SELECT setval('foo', 42); Next nextval will return 43
SELECT setval('foo', 42, true); Same as above
SELECT setval('foo', 42, false); Next nextval will return 42
und hoffe, es gelingt Dir, 42 gegen 456 auszutauschen.