Как создать таблицу mysql с несколькими внешними ключами и несколькими столбцами

Вопросы и ответы
Вопрос: Поэтому я много часов занимаюсь этим исследованием и не испытываю удачи в поиске чего-то подходящего для того, что я пытаюсь сделать. В настоящее время у меня возникают две проблемы: создание таблицы с несколькими внешними ключами, ссылающихся на один и тот же первичный ключ и разделение этих атрибутов на несколько столбцов. В конце концов, мне

Вопрос:

Поэтому я много часов занимаюсь этим исследованием и не испытываю удачи в поиске чего-то подходящего для того, что я пытаюсь сделать.

В настоящее время у меня возникают две проблемы: создание таблицы с несколькими внешними ключами, ссылающихся на один и тот же первичный ключ и разделение этих атрибутов на несколько столбцов.

В конце концов, мне хотелось бы, чтобы моя таблица выглядела примерно так, где мой O-Director_ID является первичным ключом в одном столбце, который коррелирует со всем другим идентификатором (в данном случае FAD_ID, SAD_ID и SUD_ID) в другом столбце, которые все внешние ключи, соответствующие первичному ключу из другой таблицы (Member_ID от crew_member, который уже существует).

Desired Table

Вот то, что я сейчас пытаюсь сделать, просто для создания нескольких внешних ключей (я даже не знаю, как сделать создание второго столбца):

mysql> create table Other_Directing ( -> O_Director_ID int (4) not null auto_increment, -> FAD_ID int (5) not null, -> SAD_ID int (5) not null, -> SUD_ID int <5> not null, -> primary key (O_Director_ID), -> foreign key (FAD_ID) references crew_member(Member_ID), -> foreign key (SAD_ID) references crew_member(Member_ID), -> foreign key (SUD_ID) references crew_member(Member_ID) -> );

Однако даже это не работает, я получаю это сообщение об ошибке:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘<5> not null, primary key (O_Director_ID), foreign key (FAD_ID) references crew_’ at line 5

Спасибо, и я надеюсь, что это имеет смысл.

С Уважением,

Майкл

Лучший ответ:

измените SUD_ID int <5> not null, на это: SUD_ID int (5) not null,

Ответ №1

Ваш проект действительно требует нестандартных размеров в ваших столбцах int? Если это так, у вас есть опечатка… один из ваших размеров находится в <> вместо(): -> SUD_ID int <5> not null должно быть -> SUD_ID int (5) not null

Если вы уверены, что хотите размеры из-за ограничений памяти:

create table Other_Directing ( O_Director_ID int not null auto_increment, FAD_ID int not null, SAD_ID int not null, SUD_ID int not null, primary key (O_Director_ID), foreign key (FAD_ID) references crew_member(Member_ID), foreign key (SAD_ID) references crew_member(Member_ID), foreign key (SUD_ID) references crew_member(Member_ID) );

Оцените статью
Добавить комментарий