Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Probleme mit Foreign Keys

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von Tattoofreak, 14 Februar 2015.

  1. Tattoofreak

    Tattoofreak Benutzer

    Hallo liebe DB-Gmeinde

    Heute werde ich als Datenbank-Neuling entjungfert und stosse bereits auf erste Probleme bezüglich Foreign-Keys. Kann mir jemand einen Tip geben, warum der unten stehende Fehler auftritt? Ich bin nach Anleitung in einem Lehrbuch vorgegangen und finde den Fehler einfach nicht.
    Wenn ich z.B. "ON DELETE RESTRICT" lösche, dann verschwindet das rote "X", aber der Fehler "Cannot add foreign key constraint" beim Ausführen wird trotzdem angezeigt. Ich habe also eigentlich zwei Probleme, bei welchen ich nicht weiter weiss.
    Vielen Dank im Voraus für Eure Unterstützung! Unbenannt.PNG
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Du kannst nur auf Tabellen verweisen, die schon existieren.

    Andere Datenbanken geben sinnvolle Fehlermeldungen:

    Code:
    test=# create table xyz(i int references xxyyzz);
    ERROR:  relation "xxyyzz" does not exist
    
    Mein Tipp: nehme als Anfänger eine andere DB, Du wirst mit PostgreSQL deutlich mehr Spaß und Erfolg haben als mit MySQL.
     
  3. Tattoofreak

    Tattoofreak Benutzer

    Hy akretschmer

    Besten Dank für die schnelle Antwort. Leider bin ich an mySQL gebunden, da wir das in der Schule durchnehmen und ich am Ende der Ausbildung auf mySQL eine Abschlussprüfung abegen muss.
    Also muss ich nur die Reihenfolge ändern? Sprich: Die Tabelle "adresse" zuerst erstellen?
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Die armen Kinder.

    Ja.
     
  5. Tattoofreak

    Tattoofreak Benutzer

    Kinder? Ich bin 33 Jahre :D Bingo, der Fehler ist jetzt weg und das Programm wird ausgeführt, vielen Dank! Nur das rote "X" geht nicht weg, woran kann das liegen? Kann ich das ignorieren, wenn der Programmablauf keinen Fehler bringt?
     
  6. akretschmer

    akretschmer Datenbank-Guru

    Rotes X? Gibt es nicht in SQL. Vielleicht spinnt die GUI, vielleicht gibt es eine Warnung. Danach kann man dann auch googeln, aber google mal nach rotem X ...
     
  7. Tattoofreak

    Tattoofreak Benutzer

    Schau mal auf das Bild, welches ich gepostet habe (Zeile 17). Da siehst du das rote X. Es erscheint dann, wenn der Code nicht als solcher erkannt wird. Solange ich z.B. eine Zeile nicht zu Ende getippt habe, erscheint die ganze Zeit das rote X. Sobald die Zeile korrekt als fehlerloser Code erkannt wird, verschwindet es. Normalerweise kann ich das Programm auch nicht fehlerfrei ausführen, solange ein rotes X da ist, aber in meinem Fall klappt es trotzdem.
     
  8. akretschmer

    akretschmer Datenbank-Guru

    Mag ja sein, ist aber für mich nicht reproduzierbar.
     
  9. Tattoofreak

    Tattoofreak Benutzer

    Seltsam. Trotz der Beschreibung funktioniert der Code tadellos. Auch das Lupen-Blitzzeichen findet keinen Fehler. Vielleicht stelle ich den Fehler beim Befüllen der Tabellen fest. Ich frag dann mal den Lehrer. Auf jeden Fall herzlichen Dank für Deine Hilfe, akretschmer! Hast mir sehr geholfen!
     

    Anhänge:

  10. akretschmer

    akretschmer Datenbank-Guru

    Wenn das da ein select * sein soll dann ist das zwar kein Fehler, aber schlechter Code. Nenne alle Spalten in der Select-Liste anstatt des Catch-All - Platzhalters *, das spart Dir auf lange Sicht andere Probleme.

    Frag mal Deinen Lehrer, warum als Lehr-System eine vor Fehlern nur so strotzende Datenbank gewählt wurde - MySQL verstößt an sehr, sehr vielen Stellen gegen die geltenden SQL-Normen.
     
  11. Tattoofreak

    Tattoofreak Benutzer

    Das ist nicht mein Code, das habe ich bei Google gefunden. Ist nur ein Beispiel für das rote X :)
    Wenn Du den Typen selbst erleben würdest, dann wüsstest Du warum...da genügen schon 5min. Gespräch mit ihm. Leider sind wir ihm, seinem Lehrplan und seiner bescheuerten Art zu unterrichten ausgeliefert. Ein bisschen total unverständliche Theorie an der Wandtafel, ein Buch hingeknallt (welches sehr zu wünschen übrig lässt) und den Rest dürfen wir zu Hause machen :-(
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden