Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

ORA-02270:tidak ada kunci unik atau kunci utama yang cocok untuk daftar kolom ini

Anda sedang membuat kunci komposit (atau gabungan) dengan menjadikan ini sebagai yang utama:

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

lalu coba buat ACCREDITATION_BODY_ID kunci asing, merujuk ke kolom yang sama pada tabel yang sama. Saya tidak tahu apa yang ingin Anda capai, tetapi bagaimanapun, itu tidak cara yang benar untuk melakukannya.

Menurut saya, Alasannya adalah: ACCREDITATION_BODY_ID harus menjadi kunci utama agar dapat direferensikan sebagai kunci asing, tetapi tidak demikian halnya di sini. Batasan tabel Anda adalah kunci gabungan , dan Anda perlu merujuk semua kolom dalam pernyataan kunci asing. (perbaiki saya jika saya salah)

Coba rujuk semua kolom kunci majemuk dalam pernyataan kunci asing. Itu bisa menyelesaikan masalah Anda.

Omong-omong, mereferensikan kunci utama sebagai kunci asing di tabel yang sama tidak masuk akal bagi saya (mungkin saya kehilangan sesuatu tapi tetap saja ..). Saya akan mempertimbangkan untuk mengubah desainnya.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hapus semua catatan kecuali yang terbaru?

  2. Beberapa tabel bergabung dengan kueri di Oracle SQL plus 11g

  3. kueri untuk menemukan semua kolom dalam tabel tanpa nilai di dalamnya

  4. Mengapa Oracle SQL Optimizer mengabaikan predikat indeks untuk tampilan ini?

  5. Fungsi Oracle Lag dengan parameter dinamis