Libre Office

Index des primary key aktualisieren

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Heiko
Beiträge: 21
Registriert: So 2. Okt 2016, 17:49

Index des primary key aktualisieren

Beitrag von Heiko » Do 11. Dez 2025, 06:39

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

RobertG
* LO-Experte *
Beiträge: 2964
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Index des primary key aktualisieren

Beitrag von RobertG » Do 11. Dez 2025, 10:37

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.
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Heiko
Beiträge: 21
Registriert: So 2. Okt 2016, 17:49

Re: Index des primary key aktualisieren

Beitrag von Heiko » Do 11. Dez 2025, 11:53

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

RobertG
* LO-Experte *
Beiträge: 2964
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Index des primary key aktualisieren

Beitrag von RobertG » Do 11. Dez 2025, 21:18

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.
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Open Office
Antworten