Fehlermeldung "FOREIGN KEY"

Hallo allerseits,

folgende Fehlermeldung erscheint:

mAirList-Fehler

So kann man sie erzeugen:

  • Playliste in Datenbank bestücken, aber nicht abspeichern.
  • Einen der Titel, die in der (nicht gespeicherten) Playliste stehen, aus der Datenbank löschen.
  • Dann Playliste speichern.

Danke für die Aufmerksamkeit!

Genau. Die Meldung bedeutet sinngemäß, dass ein Verweis auf ein Bibliotheks-Element (Tabelle items) im Sendeplan (Tabelle playlist) gespeichert werden soll, das zwischenzeitlich aus der Bibliothek entfernt wurde.

Und das soll man als Anwender erkennen können? Sorry, aber da fühle ich mich leicht veräppelt.

Die Überprüfung erfolgt auf SQL-Ebene mittels Fremdschlüsselbedingungen (foreign key constraints). Es wird daher die vom SQL-System erzeugte Fehlermeldung ausgegeben.

Manche SQL-Typen sind dabei gesprächiger als andere und geben z.T. noch die beteiligten IDs aus. SQLite sagt lediglich “foreign key constraint fehlt”.

Die Meldung immer durch einen anderen, für den Nutzer verständlicheren Text zu ersetzen, wäre nicht nur schwierig (da das SQL-System sie ggf. in der Sprache des Windows-Systems ausgibt), sondern auch falsch - denn es kommen grundsätzlich auch andere Ursachen in Betracht - probier doch mal, die Station zu löschen, dann passiert das auch.

Dass der Fehler in der Regel daraus resultiert, dass die Playlist ein zwischenzeitlich gelöschtes Element beinhaltet, wurde hier oft genug besprochen und ist ausreichend dokumentiert.