sql >> Database >  >> RDS >> Mysql

MySQL-fout:kan een externe sleutelbeperking niet worden toegevoegd?

Hier is je verwijzing naar verkeerde forgien REFERENCES users(from_uid) in de laatste tafel.

FOREIGN KEY(from_uid) REFERENCES users(from_uid)

from_uid behoren niet tot users

Dit zou moeten zijn

FOREIGN KEY(from_uid) REFERENCES users(uid)

je playLists table heeft een primaire sleutelcombinatie van vier kolommen, dus u moet al deze vier kolommen opgeven als forieng-sleutel in u_share_pl table .

Een andere samengestelde sleutel als referentie zou een enkele beperking moeten zijn, zoals

FOREIGN KEY(from_uid,sid,plname,plmdate,plmtime) REFERENCES playlists(uid,sid,plname,plmdate,plmtime)

Uw laatste tafel Creëren zou moeten zijn:

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)
);



  1. Lange polling in Laravel-chat:waarom wordt de div zichzelf niet bijgewerkt?

  2. DAYOFYEAR() Voorbeelden – MySQL

  3. Waarom wordt in MySQL deze IF false geretourneerd?

  4. Precisie van numerieke kolom wijzigen in Oracle