Danke, habe ich auch schon gesehen, liefert aber kein eindeutiges Ergebnis. Ich habe dafür mal 2 Sequenzen (sequence1, sequence2) erstellt und beide mit “ALTER SEQUENCE sequence[1|2] OWNED BY table.col” auf dieselbe Spalte gelegt. Als default-Wert der Spalte ist nextval(sequence1) definiert.
Pgadmin zeigt an:
Default: nextval(‘testbed.sequence1’::regclass);
Sequence: testbed.sequence1
psql zeigt an:
select pg_get_serial_sequence(‘table’, ‘col’);
testbed.sequence2
Die Spalte hatte übrigens auch keinen PK-constraint und war auch nicht mit dem serial-alias, sondern integer definiert.
Woher beziehen die Programme bloß ihre Informationen…?
An deiner Stelle würde ich anfangen, im Source für die ganzen Sequence-Funktionen zu schauen. Dort steht irgendwo drin, wie die Beziehungen abgebildet werden.
ALTER SEQUENCE … OWNED BY … wäre auch ein guter Startpunkt.
Bin leider noch nicht weitergekommen. Was ändert sich eigentlich für die Sequenz und für die Spalte, wenn eine Seqenz mit “ALTER SEQUENCE $table_$column_seq OWNED BY $table.$column” einer Spalte zugeordnet wird?
Es wird irgendwo in den Systemtabellen ein Eintrag abgelegt. Leider weiß ich auch nicht auswendig, wo das steht. Daher mein Hinweis mit Source Code lesen.