Đây là bạn tham chiếu sai cho người dùng REFERENCES users(from_uid)
trong bảng cuối cùng.
FOREIGN KEY(from_uid) REFERENCES users(from_uid)
from_uid
không thuộc về người dùng users
Đây phải là
FOREIGN KEY(from_uid) REFERENCES users(uid)
playLists table
có tổ hợp khóa chính gồm bốn cột, vì vậy bạn nên cung cấp tất cả bốn cột này làm khóa forieng trong u_share_pl table
.
Một khóa tổng hợp khác làm tham chiếu phải là một ràng buộc duy nhất như
FOREIGN KEY(from_uid,sid,plname,plmdate,plmtime) REFERENCES playlists(uid,sid,plname,plmdate,plmtime)
Bảng cuối cùng của bạn Tạo phải là:
CREATE TABLE u_share_pl(
uid INT NOT NULL,
from_uid INT NOT NULL,
sid INT NOT NULL,
plname VARCHAR(20) NOT NULL,
plmdate DATE NOT NULL,
plmtime TIME NOT NULL,
PRIMARY KEY(uid, from_uid, plname, plmdate, plmtime),
FOREIGN KEY(uid) REFERENCES users(uid),
FOREIGN KEY(from_uid,sid,plname,plmdate,plmtime) REFERENCES playlists(uid,sid,plname,plmdate,plmtime)
);