Code: Alles auswählen
SELECT
concat(
'SELECT setval(',
concat('''', table_name, '___record_seq'''),
', max(__record)) FROM ',
table_name,
';'
)
FROM public."alaska-software.isam.tables"
ORDER BY table_name ASC
Code: Alles auswählen
SELECT setval('xxx___record_seq', max(__record)) FROM xxx;
Wozu ist das gut? Nun, ich habe einen gewaltigen Schreck bekommen als ich aus Versehen ein Backup anstatt in eine Test-Datenbank (was ich hunderte male gemacht habe) in die Live-Datenbank geladen habe. Zum Glück hat dies doch kaum Schaden angerichtet - sowohl die DDL-Befehle als auch die INSERTs waren unwirksam weil die Schema-Objekte bzw. Datensätze schon existierten. Die SEQUENCE-Werte wurden aber doch überschrieben, was zur Folge hatte, dass beim Append schon existierende Werte für __record benutzt wurden - also ging jeder Append natürlich schief. Nachdem ich die SEQUENCE-Werte so korrigiert habe, scheint aber alles wieder zu gehen, also bin ich mit einem blauen Auge davon gekommen.
Also, falls Euch sowas irgendwann passieren sollte - "Don't Panic"!