kostenloser Webspace werbefrei: lima-city


Foreign Key erstellen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    neidro

    neidro hat kostenlosen Webspace.

    Hallo!

    Ich moechte fuer meine ImmoDB Datenbank einen Foreign Key Constraint erstellen und erinnere mich noch so ungefaehr von der Uni daran wie das geht aber eben nur ungefaehr :/

    Die Syntax hab ich hier gefunden:
    http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html

    Daraufhin hab ichs so probiert:
    ALTER TABLE `DIRECTIONS` 
    ADD FOREIGN KEY ('FROM') REFERENCES 'PLACES' ('ID')
    ENGINE=InnoDB;


    Ich habe eine Tabelle namens DIRECTIONS und eine PLACES. die Spalte FROM soll auf die ID Spalte von Places verweisen, die dort der Primaerschluessel ist.

    Fehlermeldung:
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''FROM') REFERENCES 'PLACES' ('ID') ENGINE=InnoDB' at line 2


    Da ich mir nicht sicher bin wann man Anfuehrungszeichen setzt und wann nicht hab ich auch da ein bisschen herumprobiert aber hat alles nix genutzt. Bitte um Inspiration
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. g****e

    ALTER TABLE `DIRECTIONS` ADD FOREIGN KEY ( `FROM` ) REFERENCES `PLACES` (`ID`) ON DELETE CASCADE ON UPDATE CASCADE;

    So müsste es klappen. Ob das CASCADE für DELETE und UPDATE Sinn macht, musst du entscheiden. Fehler bei dir dürfte aber sein, dass du ' geschrieben hast, anstatt ` . Da ist SQL irgendwie erlärgisch.

    Liebe Grüße
  4. Autor dieses Themas

    neidro

    neidro hat kostenlosen Webspace.

    Danke es waren wirklich die Anfuehrungszeichen! Ich finde es eine Äußerst seltsame Idee, Accents als Anfuehrungszeichen zu benutzen aber wenns funktioniert solls mir recht sein...
  5. n******t

    Diese Backticks sind dazu da, um namen von Tabellen oder Spalten zu "escapen", damit man wörter, die bereits von MySQL verwendet werden, auch als eigene Namen verwenden kann. Wie z. B. habe ich mal eine Spalte option genannt, es hat nie funktioniert und irgendwann hab ich das dann umbenannt und es hat geklappt. Erst viel später bin ich draufgekommen, dass es sich bei option um ein Wort handelt, das bereits von MySQL verwendet wird und das mit den Backticks hab ich auch erst ein paar Wochen später erfahren :)

    MfG
    Dominic
  6. Autor dieses Themas

    neidro

    neidro hat kostenlosen Webspace.

    Ahh danke! Sehr interessant! Schon gut zu wissen was ich da eigentlich tue wenn ich "Backticks" einsetze. In meinem Fall war das dann wohl wegen dem FROM notwendig :)
  7. g****e

    So allgemeiner Tipp für die Zukunft: Weil man seltend alle Schlüsselwörter kennt, verwendet man einfach immer wenn man eine Tabelle, Spalte oder ähnliches bezeichnet diese Backticks. Unabhängig davon, ob es gebraucht ist oder nicht, hilt es den SQL Code bei einer Wartung, einer Review oder einer Änderung schneller zu überblicken, was gemacht wird. Es hilft der Übersicht. Und noch ein Tipp: Deine Eigenen Spalten sollten keine OnlyCaps Bezeichnungen haben. Bei ID lässt sich streiten, allerdings machen es viele Entwickler so, dass die Schlüsselwörter (WHERE, FROM, UPDATE, SELECT, usw) only in Caps geschrieben werden, aber eigene Namen, Felder usw nicht, damit man auch hier beim erneuten Rüberschauen sofort erkennt, was SQL ist, und was selbst geschrieben ist.
    Das sind nur so Hinweise für die Zukunft, ich persönlich möcht es dir halt ans Herz legen, da eine Übersicht im Code, auch im SQL Code, nicht schadet, und glaube mir, auch dir für deine eigenen Projekte wird es helfen :) Grundsätzlich lassen sich damit auch schneller Fehler finden, ist so meine persönliche Erfahrung. Sei nur nochmal hinzugefüft.

    Liebe Grüße
  8. Autor dieses Themas

    neidro

    neidro hat kostenlosen Webspace.

    Klingt sehr weise und werde es mir zu Herzen nehmen. vielen Dank
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!