There are no primary or candidate keys in the referenced table that match the referencing column list in the foreign key

Mình được giao 1 đề bài tạo cơ sở dữ liệu có thông tin như sau

  • MATHANG (MSMH, TENHANG, DONGIA, DVT)

  • KHACHHANG (MAKH, TENKH, DCHI)

  • PHIEUNHAP (SOPN, NGAYLAP, MAKH, KHO)

  • CTNHAP (SOPN, MSMH, SOLUONG)

và đây là code của mình

image

Mình đang gặp trục trặc ở phần tạo khóa ngoại cho “ctnhap” là (sopn).
Nếu ở bảng phieunhap mình không set makh cùng là khóa chính thì sẽ không gặp vấn đề gì, nhưng theo đề thì bảng phieunhap có cả sopn và makh là khóa chính, mình cũng đã xem một số câu hỏi tương tự nhưng vẫn không tìm được cách giải quyết các bạn có thể giúp mình được không

cảm ơn mọi người đã bỏ thời gian để đọc ạ

bạn thử đổi tên khóa chính thành makhKHoaChinh xem sao

Mình cảm ơn nhưng vẫn bị lỗi bạn ạ, có thể là do mình chưa hiểu ý bạn lắm, bạn có thể giải thích bằng code không

https://www.w3schools.com/sql/sql_foreignkey.asp

A FOREIGN KEY is a field (or collection of fields) in one table, that refers to the PRIMARY KEY in another table.

Khi bạn muốn tạo một FOREIGN KEY tham chiếu đến một bảng khác, thì nó phải tham chiếu đến PRIMARY KEY của bảng được tham chiếu

Lúc này bảng phieunhap đang có khóa ngoại là một cặp thuộc tính, thì nếu bạn muốn tham chiếu đến thì phải tham chiếu với một cặp thuộc tính nhé

Và trong ngữ cảnh này. có vẻ như khóa chính của phieunhap chỉ là sopn thôi

4 Likes

Cảm ơn câu trả lời của bạn, theo như mình thấy thì khóa ngoại của phieunhap chỉ có 1 thuộc tính là makh cũng là thứ mà nếu mình set là khóa chính sẽ ảnh hưởng đến việc đặt sopn là khóa ngoại ở ctphieunhap.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?