Seite 1 von 1

Index des primary key aktualisieren

Verfasst: Do 11. Dez 2025, 06:39
von Heiko
Hallo zusammen,
meine alte interne hsql-base-Datenbank habe ich neu als externe firebird-Datenbank aufgesetzt. Zum Schluss habe ich die Daten der Tabellen von der alten in die neue DB kopiert, inkl. dem primary key-Feld, um die Verknüpfungen bei zu behalten. Wenn ich jetzt einen neuen Datensatz einfügen möchte, kommt diese Fehlermeldung
firebird_sdbc error:
*violation of PRIMARY or UNIQUE KEY constraint "INTEG_1" on table "rechnung"
*Problematic key value is ("rg_id" = 32)
caused by
'isc_dsql_execute'
Offenbar blieb der Index des primary key stehen, d.h. es gibt jetzt durch das Einfügen des alten Schlüsselfeldes schon die Zahl 32.
Wie kann ich den Index auf das aktuelle Maximum setzen, damit er dort weiter zählt?
Oder muss ich etwas grundlegend anders machen beim Daten übertragen?
Viele Grüße
Heiko

Re: Index des primary key aktualisieren

Verfasst: Do 11. Dez 2025, 10:37
von RobertG
Hat die Tabelle einen AutoWert?
Dann hilft

Code: Alles auswählen

ALTER TABLE "Tabellenname"
ALTER "Feldname" RESTART WITH <letzter_Feldwert>;
in Extras SQL.
Du trägst als "Tabellenname" natürlich "rechnung" ein. "Feldname" ist der Name des AutoWert-Feldes. Als <letzter_Feldwert> das momentane Maximum des AutoWert-Feldes.
Der Schlüsselwert wird übrigens mit jeder Fehlermeldung um 1 hoch gesetzt. Das heißt beim nächsten Mal, dass eben nicht die 32, sondern die 33 versucht wird. Das liegt daran, dass Firebird das über einen Generator regelt, der stumpf bei jedem Auslösen um 1 ansteigt.

Re: Index des primary key aktualisieren

Verfasst: Do 11. Dez 2025, 11:53
von Heiko
Hallo Robert,
ja, es geht um den Autowert. Es hat funktioniert, firebird zählt jetzt wieder korrekt, obwohl der Befehl zu dieser Fehlermeldung geführt hat:
1: firebird_sdbc error:
*SQL error code = -504
*Invalid cursor reference
*Cursor is not open
caused by
'isc_dsql_fetch'
Hat das noch etwas zu bedeuten? Der Zähler ist ja jetzt neu justiert, aber deutet das ggf. auf etwas anderes hin?
Viele Grüße
Heiko

Re: Index des primary key aktualisieren

Verfasst: Do 11. Dez 2025, 21:18
von RobertG
Von solch einer Meldung habe ich auch schon einmal gelesen. Ist mir aber noch nicht passiert.

Vielleicht grundsätzliche Hinweise zu Extras → SQL. Wenn Du dort Befehle eingibst sollten Formulare, Abfragen und Tabellen geschlossen sein. Im Anschluss sollten im Tabellencontainer über Ansicht → Tabellen aktualisieren die Änderungen an die Tabellen weiter gegeben werden. Die GUI bekommt nämlich von den Eingaben in Extras → SQL nichts mit.