2010-02-25 2 views
17

Я столкнулся с проблемой в том, что у меня уже есть составной первичный ключ в таблице MYSQL. Но теперь я добавил еще один столбец в эту таблицу и из-за некоторых изменений требований, я должен изменить этот составной первичный ключ таким образом, что мне нужно добавить этот ранее упомянутый столбец в список составных первичных ключей. Может ли кто-нибудь сказать мне, как изменить эту таблицу, не отбрасывая существующий составной первичный ключ. Я делаю это в проекте RailsКак добавить новый столбец к существующему составному первичному ключу

+0

Обратите внимание, что у меня есть внешние ключи в некоторые столбцах, которые находятся в составном первичном ключе – nash

+0

внешнего ключа к частичному первичному ключу? Это плохой моджо. Вы действительно должны переключиться на первичный ключ с автоматическим увеличением. – MindStalker

+0

Отбрасывание ключа не должно вызывать значения - почему вы не можете отказаться от ПК? – reech

ответ

25

Вы не можете изменить первичный ключ. Вы должны его сбросить и повторно добавить:

ALTER TABLE MyTable 
    DROP PRIMARY KEY, 
    ADD PRIMARY KEY (old_col1, old_col2, new_col); 
+0

Это способ сделать это, если что-то мешает вам отказаться от первичного ключа – PrashanD

0

но если ключа нет? пример:

ALTER TABLE xxxx ADD id INT NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY(id,id2,id3); 
Смежные вопросы