Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verwenden einer der Spalten in einem zusammengesetzten Schlüssel als Fremdschlüssel

Wie die MySQL-Dokumentation auf Fremdschlüssel angibt :

Wenn Sie also innodb verwenden, erlaubt MySQL Ihnen nicht, einen Fremdschlüssel für ein Feld zu erstellen, das nicht das Feld ganz links in einem Index ist.

Der Grund dafür ist, dass Sie in einem mehrspaltigen Index keinen Wert basierend auf einem Feld nachschlagen können, das sich nicht ganz links befindet, daher kann der Index nicht verwendet werden, um den Wert für eine Fremdschlüsselprüfung schnell nachzuschlagen.

Dieses Verhalten von MySQL-Indizes ist in der MySQL-Dokumentation auf mehrspaltige Indizes :