пытаясь связать две таблицы вместе

0

поэтому довольно новый для 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)
);
  • 0
    Кажется, вы добавляете внешний ключ в неправильную таблицу. Учитывая имена таблиц и столбцов, я ожидаю, что movie_cast.movie_id будет внешним ключом для movie.id
  • 0
    извините, я только что отредактировал свой вопрос
Показать ещё 2 комментария
Теги:
foreign-keys

1 ответ

0

Вам нужно обратиться к тому же имени столбца, что и первичный ключ. В этом случае он называется 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)
);
  • 0
    извините я просто редактировать свой пост

Ещё вопросы

Сообщество Overcoder
Наверх
Меню