sql >> Database >  >> RDS >> Mysql

Een van de kolommen in een samengestelde sleutel als externe sleutel gebruiken

Zoals MySQL-documentatie op buitenlandse sleutels aangeeft :

Dus als je innodb gebruikt, staat MySQL je niet toe een externe sleutel te maken op een veld dat niet het meest linkse veld in een index is.

De reden is dat u in een index met meerdere kolommen geen waarde kunt opzoeken op basis van een veld dat niet het meest links is, daarom kan de index niet worden gebruikt om snel de waarde op te zoeken voor een externe sleutelcontrole.

Dit gedrag van MySQL-indexen wordt beschreven in de MySQL-documentatie op indexen met meerdere kolommen :



  1. Hoe bel je een opgeslagen procedure met welsprekendheid (Laravel)?

  2. MySQL InnoDB dead lock op SELECT met exclusieve lock (VOOR UPDATE)

  3. Meer informatie over samenvoegen in SQL met voorbeelden

  4. Hoe pg_sleep_for() werkt in PostgreSQL