❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Autoinkrementwerte automatisch oder per SQL-Befehl?

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Freischreiber
* LO-Experte *
Beiträge: 837
Registriert: Fr 28. Mär 2014, 10:41

Autoinkrementwerte automatisch oder per SQL-Befehl?

Beitrag von Freischreiber » Di 6. Nov 2018, 17:27

Hallo,
vor allem: Hallo Robert,

nachdem ich im Handbuch schon öfter den Abschnitt "Autoinkrementwerte mit der externen HSQLDB" gesehen habe (zuletzt im Base_Gesamtband_einseitig_V61.pdf, Seite 580), habe ich jetzt die beiden empfohlenen Einstellungen in meiner bestehenden DB einfach einmal gesetzt, also "Generierte Werte berücksichtigen" mit
GENERATED BY DEFAULT AS IDENTITY(START WITH 0)
und
CALL IDENTITY().

Nur: verstanden habe ich sie nicht. Als Nutzer einer gesplitteten HSQL-Datenbank bin ich wohl betroffen. Aber wenn ich es richtig verstehe, kommen die Einstellungen nur beim Erstellen neuer Tabellen zum Zug.

Neue Tabellen habe ich nach dem Splitten bisher mit SQL-Befehl CREATE TABLE erstellt. Dort taucht immer explizit mit auf: "...GENERATED BY DEFAULT AS IDENTITY".

2 Fragen von mir:

1. Ist die Einstellung bei "Generierte Werte berücksichtigen" dasselbe?
Bewirkt sie, daß ich zukünftig Tabellen auch bei der gesplitteten DB per GUI erstellen kann?
Oder kann ich einfach nur das CREATE TABLE in Zukunft ohne den Zusatz "...GENERATED BY DEFAULT AS IDENTITY" machen?

2. Ist die Einstellung "Generierte Werte berücksichtigen" ungefährlich? Oder soll ich sie lieber wieder rückgängig machen?

Ich bin noch auf LO 5.2.7.2.

Gruß
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

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

Re: Autoinkrementwerte automatisch oder per SQL-Befehl?

Beitrag von RobertG » Mi 7. Nov 2018, 19:52

Hallo Freischreiber,

Code: Alles auswählen

GENERATED BY DEFAULT AS IDENTITY(START WITH 0)
findest Du im Kapitel "Tabellenerstellung" so ca. S. 120 im aktuellen Handbuch. Das ist der Befehl, den die GUI an Deine externe Datenbank weitergeben muss, damit die einen automatisch hochzählenden Wert hat. Das hat erst einmal nur etwas mit der Erstellung der Tabellen zu tun.

Code: Alles auswählen

CALL IDENTITY()
findest Du im Kapitel "Eingabemöglichkeiten über SQL direkt" > "Neue Datensätze einfügen" so ca. S. 136 im aktuellen Handbuch. Damit wird der gerade neu erstellte automatische Wert aus der Datenbank ausgelesen und für Dich sichtbar in die Tabelle übertragen. Das trifft laufend beim Einfügen neuer Datensätze zu.

Ich habe die Einstellung zur externen HSQLDB nur für Testzwecke damals aufgebaut. Ich nutze das selbst nicht weiter. In sofern: Wenn die Erstellung einer Tabelle in der GUI mit diesen angegebenen Werten unter LO zur Zeit läuft, dann wäre mir an einer Rückmeldung gelegen. Im Handbuch steht noch immer, dass LO da einen falschen Code produziert, indem NOT NULL an der falschen Stelle einfügt und damit unbrauchbaren Code erzeugt. Die Einstellung mit den generierten Werten ist natürlich für Dich im Bereich CALL IDENTITY() sinnvoll. Ob inzwischen Base das automatisch macht kann ich mangels erneutem Test auch nicht sagen.

Gruß

Robert
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


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten