Oracle
 sql >> Datenbank >  >> RDS >> Oracle

ORA-02270:Kein übereinstimmender eindeutiger oder Primärschlüssel für diese Spaltenliste

Sie erstellen einen zusammengesetzten (oder zusammengesetzten) Schlüssel indem Sie dies primär machen:

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

und dann versuchen Sie, ACCREDITATION_BODY_ID zu erstellen ein Fremdschlüssel, der auf dieselbe Spalte in derselben Tabelle verweist. Ich weiß nicht, was Sie erreichen wollen, aber wie auch immer, es ist nicht wie man es richtig macht.

Meiner Meinung nach ist Grund: ACCREDITATION_BODY_ID muss ein Primärschlüssel sein, um als Fremdschlüssel referenziert zu werden, aber das ist hier nicht der Fall. Die Einschränkung Ihrer Tabelle ist ein zusammengesetzter Schlüssel , und Sie müssen auf all verweisen die Spalten in der Fremdschlüsselanweisung. (korrigiere mich, wenn ich falsch liege)

Versuchen Sie, alle zusammengesetzten Schlüsselspalten in der Fremdschlüsselanweisung zu referenzieren. Das kann dein Problem lösen.

Übrigens machte es für mich keinen Sinn, einen Primärschlüssel als Fremdschlüssel in derselben Tabelle zu referenzieren (vielleicht fehlt mir etwas, aber trotzdem ...). Ich würde erwägen, das Design zu ändern.