вторник, 16 апреля 2013 г.

mysql. "Can't create table errno: 150" или как добавить внешний ключ к существующей таблице.

Предположим, что у нас есть таблицы user и comment.
Что бы связать их внешним ключом, надо отправить запрос


ALTER TABLE comment
ADD CONSTRAINT fk_user_id
FOREIGN KEY (user_id) REFERENCES user(id)
ON UPDATE CASCADE
ON DELETE CASCADE;


Надо помнить, что foreign key не поддерживается в MyISAM, придется преобразовывать таблицы в InnoDB

Так же поля для внешнего ключа должны быть одинакового типа и размера. Например:
comment.user_id(UNSIGNED INT 11) и user.id(UNSIGNED INT 11)

Если вы вдруг в чём то ошиблись, то удалить внешний ключ можно так:

ALTER TABLE comment DROP FOREIGN KEY fk_user_id


2 комментария: