Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Błąd MySQL:nie można dodać ograniczenia klucza obcego?

Oto odwołujesz się do błędnego REFERENCES users(from_uid) w ostatniej tabeli.

FOREIGN KEY(from_uid) REFERENCES users(from_uid)

from_uid nie należą do users

To powinno być

FOREIGN KEY(from_uid) REFERENCES users(uid)

Twoja playLists table ma kombinację czterech kolumn klucza podstawowego, więc powinieneś podać wszystkie te cztery kolumny jako klucz forieng w u_share_pl table .

Innym kluczem złożonym jako odniesieniem powinno być pojedyncze ograniczenie, takie jak

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

Twoja ostatnia tabela Utwórz powinna być:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najlepsze alternatywy dla środowiska pracy MySQL

  2. Jak wstawić stałą PHP do zapytania SQL?

  3. wybierz sumę do określonej kwoty, a następnie zaktualizuj określone pola na podstawie warunku

  4. Ostrzeżenie:mysql_result() [function.mysql-result]:Nie można przeskoczyć do wiersza 0 w indeksie wyników MySQL 5 w profile.php w wierszu 11

  5. Połącz dwie kolumny w SQL dla klauzuli WHERE