Hier verweisen Sie falsch auf REFERENCES users(from_uid)
in der letzten Tabelle.
FOREIGN KEY(from_uid) REFERENCES users(from_uid)
from_uid
nicht zu users
gehören
Dies sollte
seinFOREIGN KEY(from_uid) REFERENCES users(uid)
deine playLists table
hat eine Primärschlüsselkombination aus vier Spalten, daher sollten Sie alle diese vier Spalten als Fremdschlüssel in der u_share_pl table
angeben .
Ein weiterer zusammengesetzter Schlüssel als Referenz sollte eine einzelne Einschränkung wie
seinFOREIGN KEY(from_uid,sid,plname,plmdate,plmtime) REFERENCES playlists(uid,sid,plname,plmdate,plmtime)
Ihre letzte Tabelle Create sollte sein:
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)
);