Problem mit Foreign Key

#1
Hallo wieder mal! :)

Ich hab hier zwei Tabellen vor mir:

Tabelle movies:
Code:
+-----------------------+--------------+------+-----+---------+----------------+

| Field                 | Type         | Null | Key | Default | Extra          |

+-----------------------+--------------+------+-----+---------+----------------+

| movie_id                | mediumint(9) | NO   | PRI | NULL    | auto_increment |

| movie_name              | char(255)    | NO   |     | NULL    |                |

| movie_genre            | mediumint(9) | NO   |     | NULL    |                |

| boxshot_front         | blob         | YES  |     | NULL    |                |

| boxshot_back          | blob         | YES  |     | NULL    |                |

+-----------------------+--------------+------+-----+---------+----------------+
Tabelle genre:
Code:
+------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| genre_id | mediumint(9) | NO | PRI | NULL | |
| genre_name | char(70) | YES | | NULL | |
+------------+--------------+------+-----+---------+-------+
Jetzt will ich die Felder von movies(movie_genre) mit dem Feld von genre (genre_id) verknüpfen und das mach ich mit folgenden Befehl:

SQL:
ALTER TABLE genre
  ADD CONSTRAINT fk_genre_id
FOREIGN KEY (genre_id) REFERENCES movies(movie_genre);
Dann bekomm ich immer folgenden Fehler:

Code:
Create table 'MovieDatabase/#sql-5b8_3' with foreign key constraint failed. There is no index in the referenced table where the referenced columns appear as the first columns.
Kann mir jemand sagen was ich da falsch mache? Hab keinen Plan mehr -.-

Thx & Lg
buzzzz
 
#2
So wie ich die Sache sehe brauchst du einen Index auf genre_id und movie_genre.

Du willst wahrscheinlich sowas wie "ON DELETE CASCADE" machen.
Ich persönlich mag so exotisches Zeug nicht. Und wenn du Transaktionen nutzt brauchst du es auch nicht... Einfach 2 Deletes ausführen.

Aber ist Geschmackssache
 
Oben