Mysql
 sql >> база данни >  >> RDS >> Mysql

Грешка в MySQL:Не може да се добави ограничение за външен ключ?

Ето ви препращате грешно forgien REFERENCES users(from_uid) в последната таблица.

FOREIGN KEY(from_uid) REFERENCES users(from_uid)

from_uid не принадлежи на users

Това трябва да е

FOREIGN KEY(from_uid) REFERENCES users(uid)

вашата playLists table има комбинация от първичен ключ от четири колони, така че трябва да предоставите всички тези четири колони като чужд ключ в u_share_pl table .

Друг съставен ключ като препратка трябва да бъде едно ограничение като

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ключовата дума MySQL DELIMITER не работи

  2. Python3 + MySql:Грешка при зареждане на модул MySQLdb:Няма модул с име 'MySQLdb'

  3. Как да инсталирате phpMyAdmin на управлявани хостинг акаунти

  4. защо мога да използвам метода first(), когато моят тип набор от резултати е само напред?

  5. Множество подзаявка с zend рамка