Добавить несколько FK в одну Mysql таблицу - PullRequest
1 голос
/ 06 апреля 2020

У меня проблемы с добавлением двух FK в мою таблицу "UserSong". Я получаю сообщение об ошибке «Код ошибки: 1215. Невозможно добавить ограничение внешнего ключа»

Это мой код:

DROP database if exists SmartPiano;
CREATE database SmartPiano;
USE SmartPiano;
DROP TABLE IF exists User;
CREATE table User(
    username VARCHAR(255),
    password VARCHAR(255),
    email VARCHAR(255),
    PRIMARY KEY (username,email)
);
DROP TABLE IF exists Song;
CREATE TABLE Song(
    id INT,
    name VARCHAR(255),
    public BOOLEAN,
    path VARCHAR(255),
    reproduction INT,
    PRIMARY KEY (id)
);
DROP TABLE IF exists UserSong;
CREATE TABLE UserSong(
    usernameUser VARCHAR(255),
    emailUser VARCHAR(255),
    id INT,
    PRIMARY KEY (usernameUser,emailUser,id), 
    FOREIGN KEY (usernameUser) REFERENCES User(username),
    FOREIGN KEY (emailUser) REFERENCES User(email)

);

1 Ответ

0 голосов
/ 06 апреля 2020

В электронном письме отсутствует INDEX для вашего внешнего ключа

Так что используйте

CREATE table User(
    username VARCHAR(255),
    password VARCHAR(255),
    email VARCHAR(255),
    INDEX  (email),
    PRIMARY KEY (username,email)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...