🍀 Das LibreOffice Forum braucht HEUTE Ihre Hilfe! 🍀
❤️ Spenden Sie jetzt und sichern Sie die Zukunft unseres LibreOffice-Forums ❤️
Ihre Spende hilft, die Community offen, werbefrei (bei Registrierung) und lebendig zu halten. Vielen lieben Dank!

🙏 DANKE >> << DANKE 🙏

>> Das LibreOffice-Forum lebt von Ihnen – und von vielen Experten, die freiwillig und kostenlos ihr Wissen teilen.<<
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

Wie Primärschlüssel neu schaffen?

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Pit Zyclade
* LO-Experte *
Beiträge: 3185
Registriert: Mo 12. Nov 2012, 16:59

Wie Primärschlüssel neu schaffen?

Beitrag von Pit Zyclade » Mo 4. Jul 2016, 19:01

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!
LO 25.8.4.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.

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

Re: Wie Primärschlüssel neu schaffen?

Beitrag von RobertG » Mo 4. Jul 2016, 19:12

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
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

Pit Zyclade
* LO-Experte *
Beiträge: 3185
Registriert: Mo 12. Nov 2012, 16:59

Re: Wie Primärschlüssel neu schaffen?

Beitrag von Pit Zyclade » Mo 4. Jul 2016, 19:21

Danke, ja das hat geklappt und war sehr komfortabel. Schäme mich für meine Dummheit :roll:

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 25.8.4.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.

Freischreiber
* LO-Experte *
Beiträge: 866
Registriert: Fr 28. Mär 2014, 10:41

Re: Wie Primärschlüssel neu schaffen?

Beitrag von Freischreiber » Di 5. Jul 2016, 15:29

Hallo,

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
Es wurde eine neue Spalte ID erstellt, die gleich hochgezählte Werte enthält und so nie Null ist.

Gruß
Freischreiber

:idea: Achte auf die dritte Ziffer: Libre Office 25.2.0.3 = Ärger ist vorprogrammiert.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan
Freischreiber nutzt seit 1/2025 LibreOffice 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.


An alle, die das LibreOffice-Forum gern nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das laufende.
Einfach per Kreditkarte oder PayPal. Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.



❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten