sql >> Databáze >  >> RDS >> Mysql

Chyba MySQL:Nelze přidat omezení cizího klíče?

Zde odkazujete na nesprávné uživatele REFERENCES users(from_uid) v poslední tabulce.

FOREIGN KEY(from_uid) REFERENCES users(from_uid)

from_uid nepatří users

Toto by mělo být

FOREIGN KEY(from_uid) REFERENCES users(uid)

vaši playLists table má primární klíčovou kombinaci čtyř sloupců, takže byste měli zadat všechny tyto čtyři sloupce jako cizí klíč v u_share_pl table .

Dalším složeným klíčem jako reference by mělo být jediné omezení jako

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

Vaše poslední tabulka Create by měla být:

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. MySQL SELECT INTO OUTFILE Možnosti exportu

  2. Jak získat data za posledních 12 měsíců v MySQL

  3. Laravel Výmluvný dotaz sestavení vyberte minimální hodnotu

  4. Jak zvýšit maximální velikost nahrávaného souboru dotazu LOAD DATA INFILE?