Oracle
 sql >> база данни >  >> RDS >> Oracle

ORA-02270:няма съответстващ уникален или първичен ключ за този списък с колони

Вие създавате съставен (или съставен) ключ като направите това основно:

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

и след това се опитвате да направите ACCREDITATION_BODY_ID външен ключ, препращащ към същата колона на същата таблица. Не знам какво се опитвате да постигнете, но както и да е, не е правилният начин да го направите.

Според мен Причината е: ACCREDITATION_BODY_ID трябва да бъде първичен ключ, за да бъде посочен като външен ключ, но това не е случаят тук. Ограничението на вашата таблица е съставен ключ , и трябва да препоръчатевсички колоните в оператора за външен ключ. (поправете ме, ако греша)

Опитайте да посочите всички колони със съставен ключ в оператора за външен ключ. Това може да реши проблема ви.

Между другото, позоваването на първичен ключ като външен ключ в същата таблица нямаше смисъл за мен (може би пропускам нещо, но все пак ..). Бих обмислил промяна на дизайна.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL грешка:ORA-00907:проблем с липсваща дясна скоба

  2. Заявете две таблици от различни схеми

  3. Четене на времеви клейма при импортиране на данни в SQL Developer

  4. ORA-01797:този оператор трябва да бъде последван от грешка ANY или ALL

  5. INST_TOP (Oracle R12 INSTANCE_HOME) декодиран