❤️ 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. 🤗

[GELÖST] SQL - DELETE über verknüpfte Tabellen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Wambui
Beiträge: 12
Registriert: Fr 15. Mai 2015, 09:30

[GELÖST] SQL - DELETE über verknüpfte Tabellen

Beitrag von Wambui » Fr 15. Mai 2015, 09:42

Hallo,
ich habe in Base zwei Tabellen in einer Datenbank erstellt, "KundenStammDaten" (Primärschlüssel "ID") und "JournalTabelle" (Primärschlüssel "JID"), die über eine 1-n-Beziehung verknüpft sind. Ein Kunde kann viele Journal-Einträge besitzen. Dabei enthält "JournalTabelle" in der Spalte "KundenID" die ID aus der Tabelle "KundenStammDaten".

Ich möchte jetzt einen SQL-Befehl erstellen, der sowohl einen Kunden aus "KundenStammDaten" löschen kann und dabei auch die zu ihm gehörenden Einträge aus "JournalTabelle" löscht.
In der SQL-Anweisung von Base probiere ich

Code: Alles auswählen

DELETE FROM "JournalTabelle" "KundenStammDaten" WHERE 'KundenID' = 'ID'  AND "KundenStammDaten".Nachname LIKE 'Boyd'
aus, ohne dass in den Tabellen der Kunde und seine Journaleinträge gelöscht werden. Base sagt auch "Befehl erfolgreich ausgeführt".

Was mache ich hier falsch?

Grüße
Wambui
Zuletzt geändert von Wambui am Fr 15. Mai 2015, 16:24, insgesamt 1-mal geändert.

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

Re: SQL - DELETE über verknüpfte Tabellen

Beitrag von RobertG » Fr 15. Mai 2015, 15:59

Hallo Wambui,

Du kannst nur Daten aus einer Tabelle auf einmal löschen.
Dein Code

Code: Alles auswählen

DELETE FROM "JournalTabelle" "KundenStammDaten" WHERE 'KundenID' = 'ID'  AND "KundenStammDaten".Nachname LIKE 'Boyd'
ist eigentlich so falsch, dass ich mir gar nicht vorstellen kann, was denn Base da wohl erfolgreich hat ausführen können:
1) Tabellen werden durch ein Komma voneinander getrennt (solange überhaupt mehrere Tabellen vorkommen dürfen)
2) 'KundenID' ist ein Text, bezieht sich nicht auf ein Feld. Es wird nie 'KundenID' = 'ID' sein, weil beides unterschiedliche Texte sind
3) «Nachname» ist nicht in Anführungszeichen gesetzt - mit etwas Glück klappt so etwas manchmal.

Ich würde folgendermaßen vorgehen:
Extras → Beziehungen
Da hast Du die Beziehung definiert, aber vermutlich nicht die Löschoptionen.
Klicke auf die Verbindung zwischen den Tabellen. Rechte Maustaste → Bearbeiten ... und die Relationen genauer definieren. Dort "Kask. Löschen" wählen.
Wenn Du das abspeicherst, dann löscht Du mit dem Löschen eines Kunden alle Daten, die mit ihm aus der anderen Tabelle zusammen hängen.

Siehe dazu auch im Handbuch "Verknüpfung von Tabellen".

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

Wambui
Beiträge: 12
Registriert: Fr 15. Mai 2015, 09:30

Re: [GELÖST] SQL - DELETE über verknüpfte Tabellen

Beitrag von Wambui » Fr 15. Mai 2015, 16:24

Vielen Dank für den Hinweis.


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