我一直试图找出问题所在,但找不到问题所在。
MySQL 说: 文档
1064
年CREATE TABLE Show
(
Show_Id int NOT NULL AUTO_INCREMENT,
FOREIGN KEY (cinema_id) REFERENCES cinema(cinema_id),
FOREIGN KEY (movie_id) REFERENCES movie(movie_id),
FOREIGN KEY (show_time_id) REFERENCES show_time(show_time_id),
FOREIGN KEY (show_day_id) REFERENCES show_day(show_day_id),
PRIMARY KEY (show_id)
);
foreign key
约束应用于已声明的列。 它不执行声明。 因此,您需要声明列:
CREATE TABLE Shows (
Show_Id int NOT NULL AUTO_INCREMENT,
Cinema_id int,
Movie_id int,
Show_Time_id int,
Show_Day_id int,
FOREIGN KEY (cinema_id) REFERENCES cinema(cinema_id),
FOREIGN KEY (movie_id) REFERENCES movie(movie_id),
FOREIGN KEY (show_time_id) REFERENCES show_time(show_time_id),
FOREIGN KEY (show_day_id) REFERENCES show_day(show_day_id),
PRIMARY KEY (show_id)
);
请注意,show
是 MySQL 中的保留字,因此我将表名更改为 shows
。 无论如何,我通常使用复数作为表名,因为它们是事物的集合。