Oracle
 sql >> Database >  >> RDS >> Oracle

ORA-02270:nessuna chiave univoca o primaria corrispondente per questo elenco di colonne

Stai creando una chiave composita (o composta) rendendo questo primario:

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

e poi, provi a creare ACCREDITATION_BODY_ID una chiave esterna, che fa riferimento alla stessa colonna sulla stessa tabella. Non so cosa stai cercando di ottenere, ma comunque non il modo corretto per farlo.

Secondo me, Il motivo è: ACCREDITATION_BODY_ID deve essere una chiave primaria per poter essere referenziata come chiave esterna, ma non è il caso qui. Il vincolo della tua tabella è una chiave composta e devi fare riferimento a tutti le colonne nell'istruzione di chiave esterna. (correggimi se sbaglio)

Prova a fare riferimento a tutte le colonne della chiave composta nell'istruzione della chiave esterna. Questo potrebbe risolvere il tuo problema.

A proposito, fare riferimento a una chiave primaria come chiave esterna nella stessa tabella non aveva alcun senso per me (forse mi manca qualcosa ma comunque ..). Valuterei la possibilità di cambiare il design.