sql >> Database >  >> RDS >> Oracle

ORA-02270:geen overeenkomende unieke of primaire sleutel voor deze kolomlijst

U maakt een samengestelde (of samengestelde) sleutel door dit primair te maken:

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

en dan probeer je ACCREDITATION_BODY_ID . te maken een refererende sleutel, die verwijst naar dezelfde kolom in dezelfde tabel. Ik weet niet wat je probeert te bereiken, maar hoe dan ook, het is niet de juiste manier om het te doen.

Naar mijn mening is de Reden: ACCREDITATION_BODY_ID moet een primaire sleutel zijn om als refererende sleutel te worden verwezen, maar dat is hier niet het geval. De beperking van uw tabel is een samengestelde sleutel , en je moet verwijzen naar alle de kolommen in het refererende sleutelstatement. (corrigeer me als ik het mis heb)

Probeer te verwijzen naar alle samengestelde sleutelkolommen in de externe sleutelverklaring. Dat kan je probleem oplossen.

Trouwens, verwijzen naar een primaire sleutel als een externe sleutel in dezelfde tabel had geen zin voor mij (misschien mis ik iets, maar toch...). Ik zou overwegen het ontwerp te veranderen.




  1. Speel Framework Image BLOB-bestand voor testobject Yaml

  2. Ontsnappen aan wildcards in LIKE

  3. ROLLBACK-gebeurtenistriggers in postgresql

  4. Webservice consumeren met PL/SQL:UTL_DBWS of APEX_WEB_SERVICE?