Foreign Keys in MySQL
lully
- datenbank
Hallo Zusammen
ich habe ein Problem bei MySQL Verknüpfungen
zuerst mal die Ausgangslage:
Tabellen: Felder:
person person_ID int(11)
firstName varchar(20)
email varchar(20)
login varchar(20)
password text
FK_personType int(11)
persontype: personType_ID int(11)
description text
Jetzt möchte ich gerne machen, dass ich alle Personen eines Typs löschen kann.
Dann muss ich doch die Beziehung in der person-tabelle folgendermassen angeben:
Tabelle: person
Feld: FK_personType
person->FK_personType | persontype->personType_ID | ON DELETE: SET NULL
Wenn ich das versuche kommt aber immer folgende Fehlermeldung:
Fehler beim Erzeugen eines Fremdschlüssels für %1$s (überprüfen Sie die Datentypen) : FK_personType
Die beiden Felder FK_personType (in person Tabelle) und ID_personType (in persontype Tabelle) sind aber identisch, und beide int(11).
Ich kann auch sagen ON DELETE - cascade
Kann mir jemand helfen?
Grüsse Lully
Hello Lully,
person->FK_personType | persontype->personType_ID | ON DELETE: SET NULL
Wenn ich das versuche kommt aber immer folgende Fehlermeldung:
Fehler beim Erzeugen eines Fremdschlüssels für %1$s (überprüfen Sie die Datentypen) : FK_personType
Liegt das vielleicht daran, dass Du die falsche Storage Engine benutzt?
http://dev.mysql.com/doc/refman/5.1/en/example-foreign-keys.html
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hi Tom,
danke für die Antwort.
Liegt das vielleicht daran, dass Du die falsche Storage Engine benutzt?
Nein, benutze die innoDB, müsste gehen, nicht?
Okay, Problem gelöst!
Ich glaube das Problem war dieser Designer vom phpMyAdmin...
Hab die Beziehungen zuerst alle mit dem erstellt. Aber irgendwie spinnt der ein bischen rum (hab ich jetz auch schon von verschiedenen Leuten gehört).
Alle Tabellen neu erstellt, Beziehungen von Hand eingegeben - alles funzt.
Merci und nichts für ungut...
Grüsse Lully