поэтому довольно новый для SQL я создал 2 таблицы, которые я хотел бы связать друг с другом, но я получаю сообщение об ошибке "# 1215 - Не могу добавить ограничение внешнего ключа" может ли кто-нибудь указать мне в правильном направлении этой проблемы?
CREATE TABLE movie(
id INT(1) NOT NULL AUTO_INCREMENT,
nearname VARCHAR(25) NOT NULL,
release_date DATE NOT NULL,
lang VARCHAR(10) NOT NULL,
PRIMARY KEY(id),
CONSTRAINT same_movie FOREIGN KEY(id) REFERENCES movie_cast(movie_id)
);
CREATE TABLE movie_cast(
movie_id INT(1) NOT NULL AUTO_INCREMENT,
director_name VARCHAR(20) NOT NULL,
actor_name VARCHAR(20) NOT NULL,
actress_name VARCHAR(20) NOT NULL,
PRIMARY KEY(movie_id),
CONSTRAINT same_movie FOREIGN KEY(movie_id) REFERENCES movie(id)
);
Вам нужно обратиться к тому же имени столбца, что и первичный ключ. В этом случае он называется id
:
CONSTRAINT same_movie FOREIGN KEY(movie_id) REFERENCES movie_cast(id)
Конечно, ваш DDL не определяет movie_cast
. Итак, я предполагаю, что вторая таблица должна выглядеть примерно так:
CREATE TABLE movie_cast (
id INT NOT NULL AUTO_INCREMENT,
movie_id int not null,
cast_name varchar(255)
PRIMARY KEY(id),
CONSTRAINT fk_movie_cast_movie FOREIGN KEY(movie_id) REFERENCES movie(movie_id)
);
movie_cast.movie_id
будет внешним ключом дляmovie.id