2011-01-22 2 views
4

У меня есть таблица, называемая командами, и таблица, называемая играми. у команд есть id, имя, ..... в играх есть id, hteam_id, vteam_id, loc, .... Я хочу, чтобы hteam_id и vteam_id представляли собой внешний ключ в таблице команд. Как вы это делаетеMySQL Несколько внешних ключей, указывающих на ту же таблицу

ответ

5

Вы можете добавить два внешнего ключа с помощью этого:

alter table game add foreign key game_hteam_id(hteam_id) references teams(id) 
    , add foreign key game_vteam_id(vteam_id) references teams(id); 
+0

Это правильно , но я бы рекомендовал давать вам имена внешних ключей. –

+0

Извините, Брайан. Я не понимаю вашего комментария. – Rich

+0

Он рекомендует добавлять явное имя к внешним ограничениям ключа (иначе mysql будет просто давать им имена по умолчанию, такие как «game_ibfk_1'); Просто добавил это. – arnaud576875

2

Сначала прочитать:

FOREIGN KEY Constraints

Пример:

CREATE TABLE parent (id INT NOT NULL, 
        PRIMARY KEY (id) 
) ENGINE=INNODB; 
CREATE TABLE child (id INT, parent_id INT, 
        INDEX par_ind (parent_id), 
        FOREIGN KEY (parent_id) REFERENCES parent(id) 
         ON DELETE CASCADE 
) ENGINE=INNODB; 
Смежные вопросы