Khóa ngoại hoạt động bằng cách nối một cột với một khóa duy nhất trong một bảng khác và khóa duy nhất đó phải được xác định dưới dạng một số dạng chỉ mục duy nhất, có thể là khóa chính hoặc một số chỉ mục duy nhất khác.
Hiện tại, chỉ mục duy nhất duy nhất mà bạn có là chỉ mục kết hợp trên ISBN, Title
khóa chính của bạn là gì.
Có một số tùy chọn mở cho bạn, tùy thuộc vào chính xác những gì BookTitle nắm giữ và mối quan hệ của dữ liệu trong đó.
Tôi sẽ mạo hiểm đoán rằng ISBN là duy nhất cho mỗi hàng trong BookTitle. BẬT với giả định là trường hợp này, sau đó thay đổi khóa chính của bạn thành chỉ trên ISBN và thay đổi BookCopy để thay vì Tên sách, bạn có ISBN và tham gia trên đó.
Nếu bạn cần giữ khóa chính của mình dưới dạng ISBN, Title
thì bạn cần phải lưu trữ ISBN trong BookCopy cũng như Title và khóa ngoại trên cả hai cột, HOẶC bạn cần tạo một chỉ mục duy nhất trên BookTitle (Title) dưới dạng một chỉ mục riêng biệt.
Nói chung hơn, bạn cần đảm bảo rằng cột hoặc các cột bạn có trong REFERENCES
mệnh đề khớp chính xác với một chỉ mục duy nhất trong bảng mẹ:trong trường hợp của bạn, nó không thành công vì bạn không có một chỉ mục duy nhất trên Title
một mình.