Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

ORA-02270:không có khóa chính hoặc duy nhất phù hợp cho danh sách cột này

Bạn đang tạo khóa tổng hợp (hoặc kết hợp) bằng cách đặt điều này là chính:

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

và sau đó, bạn cố gắng tạo ACCREDITATION_BODY_ID một khóa ngoại, tham chiếu đến cùng một cột trên cùng một bảng. Tôi không biết bạn đang cố gắng đạt được điều gì, nhưng dù sao thì không cách chính xác để làm điều đó.

Theo tôi, Lý do là: ACCREDITATION_BODY_ID phải là một khóa chính để được tham chiếu như một khóa ngoại, nhưng đó không phải là trường hợp ở đây. Ràng buộc trong bảng của bạn là khóa ghép và bạn cần tham chiếu tất cả các cột trong câu lệnh khóa ngoại. (sửa cho tôi nếu tôi sai)

Hãy thử tham chiếu tất cả các cột khóa ghép trong câu lệnh khóa ngoại. Điều đó có thể giải quyết vấn đề của bạn.

Nhân tiện, tham chiếu khóa chính làm khóa ngoại trong cùng một bảng không có ý nghĩa gì đối với tôi (có thể tôi đang thiếu thứ gì đó nhưng vẫn ..). Tôi sẽ cân nhắc việc thay đổi thiết kế.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. thêm dấu phẩy (,) trong Oracle

  2. Sử dụng NẾU TỒN TẠI (CHỌN ...) trong trình kích hoạt CHÈN TRƯỚC (Oracle)

  3. Tiếp tục Chèn trong Oracle khi ngoại lệ được nâng lên

  4. ORACLE - JSON Tới Bảng Cặp Giá trị Chính

  5. Loại TABLE hoặc VARRAY ẩn danh trong Oracle