Oracle
 sql >> Base de données >  >> RDS >> Oracle

ORA-02270 :aucune clé unique ou primaire correspondante pour cette liste de colonnes

Vous créez une clé composite (ou composée) en rendant ceci principal :

("COURSE_ID", "ACCREDITATION_BODY_ID", "DATE_OBTAINED")

et ensuite, vous essayez de faire ACCREDITATION_BODY_ID une clé étrangère, faisant référence à la même colonne sur la même table. Je ne sais pas ce que vous essayez d'accomplir, mais de toute façon, ce n'est pas la bonne façon de le faire.

À mon avis, La raison est : ACCREDITATION_BODY_ID doit être une clé primaire pour être référencée comme clé étrangère, mais ce n'est pas le cas ici. La contrainte de votre table est une clé composée , et vous devez référencer tous les colonnes de l'instruction de clé étrangère. (corrigez-moi si je me trompe)

Essayez de référencer toutes les colonnes de clé composée dans l'instruction de clé étrangère. Cela peut résoudre votre problème.

Soit dit en passant, référencer une clé primaire en tant que clé étrangère dans la même table n'avait aucun sens pour moi (peut-être qu'il me manque quelque chose mais quand même ..). J'envisagerais de changer le design.