嘿伙计们我是学习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)
);
答案 0 :(得分:2)
您创建表格的顺序错误。只需将表格电影上移到表格导演。它应该工作。
编辑:将两个表互相引用并不是一个好主意。你所做的是一个循环参考设计,根本不是一个好的设计。但是,如果你真的想要这个设计,你可以创建它们,但它不会很有趣。插入数据和从这两个表中删除数据也是如此。
这个链接的答案:
In SQL, is it OK for two tables to refer to each other?