2013-05-30 3 views
0

Я хочу изменить первичный ключ таблицы, первоначально это был идентификатор, теперь я хочу, чтобы изменить его USERIDКак изменить первичный ключ таблицы

smsusers(id,fname,lname,userid) 

Здесь идентификатор типа VARCHAR ADN идент целого типа

для этого я пытаюсь следующий запрос

ALTER TABLE smsusers DROP PRIMARY KEY 

который показывает эту ошибку

#1025 - Error on rename of '.\xrcwrn_sms\#sql-ae0_6f' to 
'.\xrcwrn_sms\smsusers' (errno: 150) 

id из smsusers связан со многими таблицами как внешний ключ.

Как изменить первичный ключ.

ответ

1

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

1

ОШИБКА NO: 150 означает проблему определения внешнего ключа. Я думаю, что в какой-то другой таблице есть ограничение внешнего ключа в зависимости от этого ПК, поэтому вам нужно сначала отбросить это и перестроить его позже.

1

Вот пример:

ALTER TABLE `database`.`table` 
    DROP PRIMARY KEY, 
    ADD PRIMARY KEY (`userid`); 
0

Я попытался это link. Это работает правильно. Мои этапы:

CREATE INDEX id_pk_unique ON smsusers (id) 
ALTER TABLE parent DROP PRIMARY KEY; 
ALTER TABLE parent ADD PRIMARY KEY (userid); 
Смежные вопросы