Le jeudi 19 février 2004, Laurent Oliva a écrit... bonjour,
> Ensuite, j'ai lu dans la doc qu'il fallait créer un index pour pouvoir > exploiter les FOREIGN KEY, j'ai donc modifié mon script en conséquence: Ah ? Dans le sgbd dont je me sers il est spécifié, pour les FK: If referenced columns are specified that are not the key in the referencing table, the referenced table must have a UNIQUE definition whose column names and sequence match those of the referenced columns. pour une syntaxe: <referential_constraint_definition> ::= FOREIGN KEY [<referential_constraint_name>] (<referencing_column>,...) REFERENCES <referenced_table> [(<referenced_column>,...)] [<delete_rule>] > PRIMARY KEY (Num_Periode) > PRIMARY KEY (Num_Type) > FOREIGN KEY (Num_Periode) REFERENCES Periodicite(Num_Periode), > FOREIGN KEY (Num_Type) REFERENCES Type(Num_Type) Dans ton cas: Les clé étrangères (referencing columns) ne sont pas des clés de ta table (referencing table), mais les 'referenced columns' sont clés primaires des 'referenced tables', donc 'unique'. Alors c'est à regarder pour InnoDB de plus près, j'ai franchement la flemme de le faire. Tu ne devrais pas avoir besoin d'indexer celles-ci, d'autant: * qu'un index est inutile si la table est peu importante (moins de 1000 enregistrements je crois, ça va dépendre de ta base) * qu'il n'est pas utilisé si la requête ramène plus de 25-30% de données (ça dépend du sgbd, et de ta requête) -- jm