Hallo,
Habe mir bei meinen kläglichen Versuchen, mit dem GUI den Charakter der Primärschlüsselspalte (small integer zu integer und schließlich zurück, weil ich auto increment haben wollte) zu ändern, nur erreicht, dass ich jetzt eine Tabelle habe, die gar keinen Primärschlüssel zu haben scheint, jedenfalls keinen in dem GUI. Auch kann ich keine Datenänderung in der Tabelle machen, aber die Datensätze scheinen vollständig zu sein, bis auf das fehlende ID-Feld.
Nun wollte ich per SQL wieder eine Spalte "ID" schaffen, die Primärschlüsseleigenschaft hat, weil ich dachte, daran könnte es liegen.
ABER das will mir nicht gelingen. Die SQL-Rückgabeantwort lautet:
1: Attempt to insert null into a non-nullable column: column: ID table: Tabelle 1 in statement [alter table "Tabelle 1" add column "ID" INT PRIMARY KEY before "Datum"]
Wie müßte die richtige SQL-Befehlskette lauten?
Ist der fehlende Primärschlüssel überhaupt Schuld, dass ich die Tabelle nicht mehr bearbeiten kann?
Danke für eure Mühe!
❤️ 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. 🌱
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Wie Primärschlüssel neu schaffen?
-
- * LO-Experte *
- Beiträge: 3060
- Registriert: Mo 12. Nov 2012, 16:59
Wie Primärschlüssel neu schaffen?
LO 24.8.7.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: Wie Primärschlüssel neu schaffen?
Hallo Pit,
Du kannst nicht anschließend ein Primärschlüsselfeld an eine bestehende Tabelle mit Inhalt anhängen. Das Feld darf ja nie NULL sein und muss in jedem Datensatz unterschiedliche Inhalte haben. Mit Dem von Dir genannten INSERT-Befehl erstellst Du aber ein leeres Feld.
Die einfachste Methode ist, eine neue Tabelle über die grafische Benutzeroberfläche zu erstellen, indem Du die alte Tabelle kopierst und als neue Tabelle einfügst. Dann wirst Du danach gefragt, ob ein Primärschlüssel erstellt werden soll. Das lässt Du zu und Du erhältst ein Integer-Feld, in der Regel als AutoWert.
Gruß
Robert
Du kannst nicht anschließend ein Primärschlüsselfeld an eine bestehende Tabelle mit Inhalt anhängen. Das Feld darf ja nie NULL sein und muss in jedem Datensatz unterschiedliche Inhalte haben. Mit Dem von Dir genannten INSERT-Befehl erstellst Du aber ein leeres Feld.
Die einfachste Methode ist, eine neue Tabelle über die grafische Benutzeroberfläche zu erstellen, indem Du die alte Tabelle kopierst und als neue Tabelle einfügst. Dann wirst Du danach gefragt, ob ein Primärschlüssel erstellt werden soll. Das lässt Du zu und Du erhältst ein Integer-Feld, in der Regel als AutoWert.
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
-
- * LO-Experte *
- Beiträge: 3060
- Registriert: Mo 12. Nov 2012, 16:59
Re: Wie Primärschlüssel neu schaffen?
Danke, ja das hat geklappt und war sehr komfortabel. Schäme mich für meine Dummheit
Nur zur meiner Bildung: Wäre es möglich gewesen, in folgenden Schritten zum Erfolg zu kommen, 1. Spalte vor der ersten einzufügen, 2. Diese neue Spalte inkrementionell irgendwie aufzufüllen und 3. dann diese Spalte zum neuen Primärschlüssel zu erklären?
Danke für Antwort!

Nur zur meiner Bildung: Wäre es möglich gewesen, in folgenden Schritten zum Erfolg zu kommen, 1. Spalte vor der ersten einzufügen, 2. Diese neue Spalte inkrementionell irgendwie aufzufüllen und 3. dann diese Spalte zum neuen Primärschlüssel zu erklären?
Danke für Antwort!
LO 24.8.7.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
-
- * LO-Experte *
- Beiträge: 837
- Registriert: Fr 28. Mär 2014, 10:41
Re: Wie Primärschlüssel neu schaffen?
Hallo,
also bei mir hat dieser SQL-Befehl für die Ausgangssituation (Tabelle ohne Primärschlüsselspalte) gerade funktioniert:
Es wurde eine neue Spalte ID erstellt, die gleich hochgezählte Werte enthält und so nie Null ist.
Gruß
Freischreiber
also bei mir hat dieser SQL-Befehl für die Ausgangssituation (Tabelle ohne Primärschlüsselspalte) gerade funktioniert:
Code: Alles auswählen
ALTER TABLE "Tabelle1" ADD COLUMN "ID" INTEGER GENERATED BY DEFAULT AS IDENTITY
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
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
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.