В MySQL, как я могу создать столбец с внешним ключом? - PullRequest
0 голосов
/ 14 марта 2010

Столбец с внешним ключом для столбца другой таблицы.Как мне это сделать?

Ответы [ 2 ]

1 голос
/ 14 марта 2010

Сначала убедитесь, что вы используете InnoDB (или другой движок, который поддерживает внешние ключи; MyISAM нет). Затем используйте соответствующие инструкции DDL .

1 голос
/ 14 марта 2010

Это невозможно с механизмом таблиц MyISAM , но с InnoDB , например:

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;

В противном случае (с MyISAM) вам просто нужно проверить столбцывручную.Это все еще (по крайней мере, логичный) внешний ключ, но без ограничения.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...