Ein Foreign Key legt eine Beziehung zwischen zwei Tabellen in einer MySQL-Datenbank fest, damit die Daten konsistent bleiben. Zum Beispiel: Eine Bestellung muss immer zu einem bestehenden Kunden gehören. In diesem Artikel erklären wir, was Foreign Keys sind, wie du sie erstellst, welche Storage Engine du dafür benötigst und wie du häufige Fehler behebst.
Was ist ein Foreign Key?
Ein Foreign Key ist eine Spalte in einer Tabelle, die auf den Primary Key einer anderen Tabelle verweist. Damit legst du eine Beziehung zwischen Tabellen fest, zum Beispiel zwischen Kunden und Bestellungen. MySQL prüft bei jedem Einfügen, Aktualisieren oder Löschen, ob die Beziehung gültig bleibt – das nennt man referenzielle Integrität.
Foreign Keys funktionieren nur mit der InnoDB Storage Engine. MyISAM unterstützt keine Foreign Keys. Prüfe daher beim Erstellen einer Tabelle immer, ob InnoDB ausgewählt ist.
Foreign Key mit SQL erstellen
Die zuverlässigste Methode, einen Foreign Key hinzuzufügen, ist über SQL. Nachfolgend ein Beispiel, bei dem die Tabelle bestellungen auf die Tabelle kunden verweist:
CREATE TABLE kunden (