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

ORA-02270:ingen matchende unikke eller primær nøgle til denne kolonneliste

Du opretter en sammensat (eller sammensat) nøgle ved at gøre dette til det primære:

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

og derefter prøver du at lave ACCREDITATION_BODY_ID en fremmednøgle, der refererer til den samme kolonne på den samme tabel. Jeg ved ikke, hvad du prøver at opnå, men alligevel er det ikke den korrekte måde at gøre det på.

Efter min mening er Årsagen: ACCREDITATION_BODY_ID skal være en primær nøgle for at blive refereret til som en fremmed nøgle, men det er ikke tilfældet her. Din tabels begrænsning er en sammensat nøgle , og du skal henvise til alle kolonnerne i erklæringen om fremmednøgle. (ret mig, hvis jeg tager fejl)

Prøv at henvise til alle de sammensatte nøglekolonner i den fremmednøglesætning. Det kan løse dit problem.

Det gav i øvrigt ingen mening for mig at henvise til en primærnøgle som en fremmednøgle i samme tabel (måske mangler jeg noget, men alligevel...). Jeg ville overveje at ændre designet.




  1. Hvorfor giver denne MySQL-lagrede funktion andre resultater end at lave beregningen i forespørgslen?

  2. hvordan man beregner tid brugt på min app efter tidsstempel

  3. Afhængig dropdown-boks CakePHP 3

  4. Af og til får du SqlException:Timeout udløb