Как добавить внешний ключ в существующую таблицу? - PullRequest
0 голосов
/ 05 августа 2011

У меня есть три таблицы:

1.Пользователь (идентификатор, имя, дата рождения) - ПЕРВИЧНЫЙ КЛЮЧ ('идентификатор')

2.Контакт (id, контакт, подтвержден) - ПЕРВИЧНЫЙ КЛЮЧ ('id')

3.UserContact (User_id, Contact_id) - Нет первичного ключа или внешнего ключа

Проблема в том, что я не заботился о первичном или внешнем ключе при создании UserContact Таблица.Поэтому при вставке записи в таблицу UserContact в Zend Framework я получаю следующую ошибку.

Таблица должна иметь первичный ключ, но ни один не найден

Теперь я хочу создать скрипт MySql, который изменяет таблицу UserContact и делает User_id и Contact_id в качестве внешних ключей из таблиц User и Contact.Как написать этот скрипт.Я использую phpMyAdmin.

Спасибо

1 Ответ

5 голосов
/ 05 августа 2011

Синтаксис ALTER TABLE

Добавление внешних ключей -

ALTER TABLE UserContact
  ADD CONSTRAINT FK_UserContact_User FOREIGN KEY (user_id) REFERENCES user(id);
ALTER TABLE UserContact
  ADD CONSTRAINT FK_UserContact_Contact FOREIGN KEY (contact_id) REFERENCES user(id);

Добавление первичного ключа -

ALTER TABLE UserContact
  ADD PRIMARY KEY (User_id, Contact_id);
...