ошибка ограничения внешнего ключа mysql

0

im пытается создать базу данных для веб-сайта, который обрабатывает университетские классы, но у меня возникают проблемы в моем sql

ER ДИАГРАММА ПОКАЗАНА НИЖЕ

er link

"пользователь", являющийся студентом

"класс" - это классы

"имеет" классы, которые

"хочет" быть классами, которые у ученика нет, но хочет

Я написал запросы для создания 4 таблиц "имеет" "хочет" "пользователь" и "класс", но im получает ошибки

CREATE TABLE Class
(
ClassName varchar(255),
Professor_Name varchar(255),
Start_Time varchar(10),
End_Time varchar(10),
Course_Number varchar(20),
Section_Number varchar(20),
Days varchar(10),
PRIMARY KEY(Course_Number,Section_Number))
;

Теперь перед созданием таблицы "есть" и "хочет" убедитесь, что таблица пользователя уже создана, так как обе эти таблицы будут ссылаться на таблицу пользователей.

CREATE TABLE User
(
Email VARCHAR(255),
first_name VARCHAR(255),
last_name VARCHAR(255),
password VARCHAR(255),
PRIMARY KEY (Email)
);

Теперь мы создадим таблицы и хотим

CREATE TABLE has
(
Email VARCHAR(255),
Course_Number VARCHAR(20),
Section_Number VARCHAR(20),
PRIMARY KEY (Email, Course_Number, Section_Number),
FOREIGN KEY (Email) REFERENCE User (Email),
FOREIGN KEY (Course_Number) REFERENCES Class (Course_Number),
FOREIGN KEY (Section_Number) REFERENCES Class (Section_Number)
);

Аналогично создание таблицы требует

CREATE TABLE wants
(
Email VARCHAR(255),
Course_Number VARCHAR(20),
Section_Number VARCHAR(20),
PRIMARY KEY (Email, Course_Number, Section_Number),
FOREIGN KEY (Email) REFERENCE User (Email),
FOREIGN KEY (Course_Number) REFERENCES Class (Course_Number),
FOREIGN KEY (Section_Number) REFERENCES Class (Section_Number)
);

по какой-то причине на "хочет" и "имеет" таблицу im получить ошибку "не могу добавить ограничение внешнего ключа" im с помощью mysql, типы одинаковы, поэтому я не уверен, почему его не работает, "пользователь" и "класс", таблицы прекрасны, но по какой-то причине другие 2 im получают эту ошибку?

Теги:
foreign-keys

1 ответ

1

Этот вопрос касается синтаксической ошибки:

Измените это:

FOREIGN KEY (Course_Number) REFERENCES Class (Course_Number),
FOREIGN KEY (Section_Number) REFERENCES Class (Section_Number)

Для того, чтобы:

FOREIGN KEY (Course_Number, Section_Number) 
  REFERENCES Class (Course_Number, Section_Number)
  • 0
    да! это сработало спасибо
  • 0
    Рад помочь! Пожалуйста, примите мой ответ тоже. Благодарю.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню