2013-07-11 5 views
0

Я пытаюсь переименовать первичный ключ в таблице InnoDB, и я продолжал получать Errno 150. ШОУ INNODB STATUS показывает:Как удалить внешний ключ, который не существует из таблицы, которая не существует, в MySQL?

LATEST FOREIGN KEY ERROR 
130711 18:22:53 Error in foreign key constraint of table xx/client_location_business_load: 
there is no index in referenced table which would contain 
the columns as the first columns, or the data types in the 
referenced table do not match the ones in table. Constraint: 
, 
    CONSTRAINT "business_load_business_load_name_key" FOREIGN KEY ("name_id") REFERENCES "client_businesstype_load_name" ("name_id") ON DELETE CASCADE ON UPDATE CASCADE 

В таблице client_location_business_load вообще не существует! Он был переименован. Ограничение с именем business_load_business_load_name_key также не существует, оно было сброшено и оно не отображается в information_schema.key_column_usage.

Кто-нибудь знает, что здесь происходит?

+0

Возможный дубликат [(ошибка?) InnoDB Ошибка MySQL 1025, errno 150 Foreign Key] (http://stackoverflow.com/questions/15100545/bug-innodb-mysql-error-1025-errno-150-foreign- key) – eggyal

+0

Я думаю, что это похоже на ту же проблему, но у этого вопроса все еще нет ответа, и я не могу воссоздать таблицу, о которой идет речь, поскольку mysql считает, что уже есть внешний ключ с этим именем. – sudol

ответ

0

Вам необходимо отказаться от базы данных и воссоздать ее в том же порядке. Кажется, нет альтернативы.

Смежные вопросы