由于外键约束,无法创建 table

Failed to create table because of foreign key constraints

我正在尝试创建三个 table,但在最后一个关于其外键的错误中,我确保外键在两个 table 中具有相同的类型s,相同的规格,它是父table中的主键。
我也尝试了之前帖子中建议的解决方案,但情况不一样,所以它没有用。

CREATE TABLE Movies (
   movie_title VARCHAR(86), 
   imdb_id VARCHAR(9), 
   movie_id INT, 
   runtime INT, 
   budget INT, 
   revenue INT, 
   release_date DATE, 
   vote_count INT, 
   vote_average DOUBLE, 
   popularity DOUBLE, 
   language VARCHAR(2), 
   tagline VARCHAR(221), 
   overview TEXT(992), 
   PRIMARY KEY (movie_id), 
   FULLTEXT idx (overview)
);

我得到:SUCCESFULLY CREATED TABLE Movies

CREATE TABLE Movie_Genre (
   movie_id INT,
   genre_id INT,
   PRIMARY KEY (movie_id, genre_id),
   FOREIGN KEY (movie_id) REFERENCES Movies(movie_id)
);

我得到:SUCCESFULLY CREATED TABLE Movie_Genre

CREATE TABLE Genres (
   genre_id INT,
   genre_name VARCHAR(15),
   PRIMARY KEY (genre_id),
   FOREIGN KEY (genre_id) REFERENCES Movie_Genre(genre_id)
);

我得到:

Failed to add the foreign key constraint. Missing index for constraint 'Genres_ibfk_1' in the referenced table 'Movie_Genre'

外键应该在 movie_genre table,而不是流派 table

你的结构对我来说没有任何意义。我假设您想存储哪部电影有哪些流派。因此你的流派 table 不应该有任何外键。

您需要 movie_idgenre_id 作为您 Movie_Genre 中的外键 table:

CREATE TABLE Movie_Genre (
   movie_id INT,
   genre_id INT,
   PRIMARY KEY (movie_id, genre_id),
   FOREIGN KEY (movie_id) REFERENCES Movies(movie_id),
   FOREIGN KEY (genre_id) REFERENCES Genres(genre_id)
);

并将外键放入流派 table:

CREATE TABLE Genres (
   genre_id INT,
   genre_name VARCHAR(15),
   PRIMARY KEY (genre_id)
);

请注意,您现在必须在 Movie_Genres 之前创建 Genres