由于外键约束,无法创建 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_id
和 genre_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
。
我正在尝试创建三个 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_id
和 genre_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
。