Seite 1 von 1

Primärschlüssel geht nach Speichern verloren

Verfasst: Fr 4. Mai 2012, 22:53
von UlfZibis
Hallo,

ich habe eine kleine Tabelle:
Tabelle Kategorien, Primärschlüssel einfügen.png
Tabelle Kategorien, Primärschlüssel einfügen.png (2.71 KiB) 6162 mal betrachtet
Wenn ich nach dem Abspeichern und Schließen die Tabelle wieder öffne, ist der Primärschlüssel wieder weg.
Kennt das jemand :?:

Re: Primärschlüssel geht nach Speichern verloren

Verfasst: Sa 5. Mai 2012, 08:17
von pmoegenb
Wenn die DB-Tabelle bereits Datensätze enthält, ist das durchaus möglich. Ich weiß nicht wie sich HSQLDB verhält, wenn gleichzeitig Autowert auf Ja definiert wird.
Wenn ein Primärschlüssel bei bereits vorhandenen Datensätzen festgelegt wird, darf das entsprechende Feld nicht ohne Inhalt sein und muss eindeutig sein.

Re: Primärschlüssel geht nach Speichern verloren

Verfasst: Sa 5. Mai 2012, 11:27
von gogo
Die interne HSQL-DB ist eigentlich eine mehr als dürftige Krücke - verwende am besten MySQL (funktioniert ausgezeichnet) oder Postgre (soll ausgezeichnet funktionieren). Außerdem ist die in Base verwendete HSQL-DB schon eine in die Jahre gekommene Version, die (leider) auch logische Probleme beinhaltet.

Re: Primärschlüssel geht nach Speichern verloren

Verfasst: Sa 5. Mai 2012, 11:59
von pmoegenb
Hallo gogo,
gogo hat geschrieben:Die interne HSQL-DB ist eigentlich eine mehr als dürftige Krücke - verwende am besten MySQL (funktioniert ausgezeichnet) oder Postgre (soll ausgezeichnet funktionieren). Außerdem ist die in Base verwendete HSQL-DB schon eine in die Jahre gekommene Version, die (leider) auch logische Probleme beinhaltet.
Die genannten DB-Server wären zwar die bessere Wahl, aber es will ja nicht jeder gleich einen Datenbank-Server aufsetzen. Deshalb wären noch die nachfolgenden Embedded-Datenbanken zu erwähnen:

SQLite
SQLite war einmal für OOo vorgesehen, stattdessen wurde jedoch HSQLDB eingebaut. SQLite werkelt z. B. im Firefox und Thunderbird. Die Konfiguration einer Datenbank kann mit der Firefox-Extension SQLite Manager oder der Freeware sqlitestudio erfolgen. Der Zugriff in OOo/LibO erfolgt über ODBC.

Firebird 2.5
Diese Datenbank kann als Embedded-Datenbank oder als Datenbank-Server betrieben werden. Die Konfiguration kann mit IBExport Personal-Edition erfolgen. Der Zugriff in OOo/LibO erfolgt über ODBC.

Re: Primärschlüssel geht nach Speichern verloren

Verfasst: Sa 5. Mai 2012, 22:46
von gogo
Hallo Peter,

klar ... die Desktopdatenbanken vergesse ich immer weil ich sie nicht verwende, vor allem deswegen weil sie über ODBC anzusprechen sind und es einem normalen User nicht zumutbar ist z.B. die Kombi ODBC/SQlite auf einem Unix-System zum Laufen zu bringen (da ist MySQL noch einfacher). Die einzig wirklich einfache DesktopDB die ich kenne ist leider Access...

Re: Primärschlüssel geht nach Speichern verloren

Verfasst: Do 10. Mai 2012, 00:01
von UlfZibis
@ pmoegenb + gogo:
Wenn ich eine andere Datenbank hätte verwenden wollen, hätte ich sie ja von vornherein verwendet.
Doch wollte ich ja eine einfache out-of-the-box Lösung benutzen. Da ist es schon blöd, wenn die dann bei so einfachen Anforderungen schon patzt.
In meinem Fall waren tatsächlich schon Daten in der Tabelle, erzeugt aus einer bereits existierenden Calc-Tabelle. Wenn ein nachträgliches Definieren eines Feldes als Primärschlüssel dann nicht möglich ist, sollte Base eine Fehlermeldung ausgeben, statt die Einstellung heimlich zu ignorieren.
Wenn ich beim Importieren das Anlegen eines zusätzlichen Primärschlüssel angebe, habe ich danach 2 Schlüssel, von denen ich einen nicht brauche.

Ich habe mal einen Bug geposted: https://bugs.freedesktop.org/show_bug.cgi?id=49708