Je sais pas comment ça se passe dans MySQL, mais en tout cas dans Oracle, on peut pas faire de clé étrangère sur autre chose qu'une clé primaire.
C'est assez logique d'ailleurs. Une clé étrangère référence quelque chose d'unique. Quelque chose d'unique dans une autre table, c'est quand même souvent une clé primaire.
Je pense que le mot clé UNIQUE permet simplement de contraindre une table mais ne sert en aucun cas de référence.
[^] # Re: InnoDB MySQL
Posté par Damien Metzler . En réponse au journal InnoDB MySQL. Évalué à 1.
C'est assez logique d'ailleurs. Une clé étrangère référence quelque chose d'unique. Quelque chose d'unique dans une autre table, c'est quand même souvent une clé primaire.
Je pense que le mot clé UNIQUE permet simplement de contraindre une table mais ne sert en aucun cas de référence.