In meiner ID nimmt es immer die Nummer aus dem Eintrag davor. Warum?

EDIT-ebot: aus Titel entnommen, Titel gekürzt:

Bei meinem ID Feld (mit Autofill) nimmt es immer die Nummer aus dem Eintrag davor. (Eindeutig ist angehakt). Woran kann das liegen?

Wenn ich alle anderen Felder der Tabelle ausgefült habe, ersetzt es alle Einträge mit dem vorherigen. Ich habe dann diesen Eintrag doppelt. Ich habe auch schon versucht dann manuell die ID zu ändern - dann ändert es die ID in beiden Einträgen.

Nachtrag:

Geräteverwaltung_Upload.odb

Nachtrag von ebot:

Mit “tbl_Geräte” ID = Integer

Welche LibreOffice Version und welches Betriebssystem verwendest Du?

Libre Office Version 7.0.5.2 (x64)
Windows 10

Hast Du Deine ID außerdem als “Integer” und "Primärschlüssel definiert?


**Nachtrag von ebot:**

Mit “tbl_Geräte” ID = Integer

ja, außer dass ich BigInt hab, dürfte aber keinen unterschied machen, oder?

Was passiert, wenn Du nach der Eingabe und den augenscheinlich falschen Daten die Tabelle schließt und anschließend wieder öffnest? Du gibst doch direkt in der Tabelle ein, oder? Kann ja sein, dass etwas mit der Aktualisierung nicht stimmt.

Also wenn ich einen neuen Eintrag mache, und dann die Tabelle speichere (schliese und neu öffne) bleibt mein neuer Eintrag mit der alten Nummer erhalten und der alte Eintrag ist gelöscht.

Also sind nicht die Werte tatsächlich gleich, sondern das Ganze scheint nur so - oder verstehe ich Dich da falsch? Denn doppelt eine ID vergeben passiert doch nicht tatsächlich.

Vielleicht hast Du die Möglichkeit, davon einen kleinen Ablauf aufzunehmen und irgendwo hoch zu laden. Ich habe so etwas bei den Eingaben hier noch nicht gesehen und wüsste auch auf Anhieb nicht, dass so ein Bug speziell für Windows gemeldet ist.

Das sieht für mich (aus der Ferne) so aus, als ob gar nicht automatisch weitergezählt wird, sondern Du einfach in den letzten DB-Eintrag schreibst.

Verkürze eine Kopie inhaltlich und anonymisiere die Datei.

Lade die Datei hier hoch.

Zum Hochladen “Bearbeite” Deine Eingangsfrage und benutze das Büroklammersymbol.

Dann kann sich jemand das anschauen. Danke.

Ich hab meine gekürzte Datei hochgeladen, siehe oben. Danke für die Bemühungen.

Deine Datei habe ich mir angeschaut.


Beim Öffnen habe ich Macros ausgeschaltet.

Es ist mir aufgefallen dass das Feld “ID” in der geöffneten Tabelle und leerem DS anzeigt “Autofeld”.

Das keine neuen Datensätze übernommen werden kann ich bestätigen.



**Mein Test:**
Ich habe eine neue Tabelle angelegt "tbl_Geräte" und die Felder von Deiner "tbl_Geräte2" manuell übernommen. Jedoch das ID-Feld als Integer angelegt. Im leeren Datensatz wird "Auto" angezeigt.

Ich habe DS eingetragen. Sie werden anstandslos übernommen und die ID zählt automatisch hoch, ohne Probleme.


Die geänderte Datei lade ich in Deine Eingangsfrage hoch.

Was mir sonst auffiel:


Das Feld "Baujahr" hast Du als Integer angelegt. Da würde IMHO als Text ausreichen, oder wenn DU mit dem Datum irgenwie rechnen möchtest, dann als Datum.

Das Feld “Memo” hast Du als Text angelegt mit 800 Zeichen. Ich würde das Feld auch direkt als Feldtyp Memo anlegen, dann bist Du nicht begrenzt.

Die neuen Datensätze werden bei der DB übernommen. Sie stehen nur nach dem Aktualisieren oben, da der nächste Primärschlüsselwert 1112 zu sein scheint.

Vielen Dank. Das ist mir nicht aufgefallen.

Das Problem liegt wohl in dem Primärschlüssel begründet. Du hast da bereits recht hohe Zahlen stehen. Wird aber ein neuer Datensatz eingefügt, so wird dem ein Primärschlüssel zugewiesen, der viel kleiner ist als die Schlüsselwerte der weiter unten liegenden Feldern. Tabellen werden standardmäßig nach dem Primärschlüssel sortiert und die GUI erwartet anscheinend, dass dann der neue Datensatz unten liegen soll und liest einfach den Datenwert mit der maximalen ID aus. Kann sein, dass das nur in Firebird der Fall ist. Dort gibt es ja eigentlich die AutoWerte gar nicht. Da wird ein Generator zur Hilfe genommen.

ALTER TABLE "tbl_Geräte2" ALTER "ID" RESTART WITH 900000050000089;

Dies löst das Problem in der beigefügten Tabelle, wobei mir unklar ist, wie Du zu so hohen Autowerten kommen kannst. Jedenfalls wird dann der nächste Datensatz mit einer ID von 900000050000090 erstellt. Dieses Kommando ist das passende für Firebird. Auch wenn da eine zusätzliche englischsprachige Meldung unter Extras → SQL erscheint - das funktioniert.

Sollte dies jemand lesen, der mit einer HSQLDB seinen Autowert neu einstellen will, dann bitte berücksichtigen: ALTER TABLE "tbl_Geräte2" ALTER COLUMN "ID" RESTART WITH 900000050000090;. Dort muss der Zusatz COLUMN und der neu zu erstellenden Feldwert stehen, nicht der aktuell letzte.