SQL无法添加外键?

时间:2015-10-08 02:58:29

标签: mysql database foreign-keys create-table

嘿伙计们我是学习SQL的新手,试图为学校制作一个简单的电影数据库但是不能在SQL小提琴上添加外键约束错误任何想法都会非常适合谢谢。

CREATE TABLE Actor (
ActorID INT AUTO_INCREMENT PRIMARY KEY,
FName VARCHAR (255),
LName VARCHAR (255)
);

CREATE TABLE Genre (
GenreID INT AUTO_INCREMENT PRIMARY KEY,
GenreType VARCHAR(255)
);


CREATE TABLE Director (
DirectorID INT AUTO_INCREMENT PRIMARY KEY,
FirstName VARCHAR (255),
LastName VARCHAR (255),
MovieID INT,
FOREIGN KEY (MovieID) REFERENCES Movie(MovieID)

);


CREATE TABLE Movie (
MovieID INT AUTO_INCREMENT PRIMARY KEY,
MovieTittle VARCHAR (255) NOT NULL,
ReleaseYear INT (4) NOT NULL,
Watched BOOlEAN,
StarRating INT (2),
DirectorID INT,
FOREIGN KEY (DirectorID) REFERENCES Director(DirectorID)
);

CREATE TABLE JunctionMovieGenre (
GenreID INT,
MovieID INT,
FOREIGN KEY (GenreID) REFERENCES Genre(GenreID),
FOREIGN KEY (MovieID) REFERENCES Movie(MovieID)
);

CREATE TABLE JunctionMovieActor (
MovieID INT,
ActorID INT,
FOREIGN KEY (ActorID) REFERENCES Actor(ActorID),
FOREIGN KEY (MovieID) REFERENCES Movie(MovieID)
);

1 个答案:

答案 0 :(得分:2)

您创建表格的顺序错误。只需将表格电影上移到表格导演。它应该工作。

编辑:将两个表互相引用并不是一个好主意。你所做的是一个循环参考设计,根本不是一个好的设计。但是,如果你真的想要这个设计,你可以创建它们,但它不会很有趣。插入数据和从这两个表中删除数据也是如此。

这个链接的答案: In SQL, is it OK for two tables to refer to each other?