間違ったforgienREFERENCES users(from_uid)
を参照しています 最後の表にあります。
FOREIGN KEY(from_uid) REFERENCES users(from_uid)
from_uid
users
に属していない
これは
FOREIGN KEY(from_uid) REFERENCES users(uid)
playLists table
4列の主キーの組み合わせがあるため、これら4列すべてをu_share_pl table
のforiengキーとして指定する必要があります。 。
参照としての別の複合キーは、
のような単一の制約である必要があります。FOREIGN KEY(from_uid,sid,plname,plmdate,plmtime) REFERENCES playlists(uid,sid,plname,plmdate,plmtime)
最後のテーブル作成は次のようになります:
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)
);