SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 18.09.2010 18:34:43

bigbobah
Участник
Зарегистрирован: 18.09.2010
Сообщений: 5

Ошибка foreign key при его отсутствии, InnoDB

Здравствуйте, у меня следующая проблема.
Я создал таблицу, содержащую foreign key. Потом удалил её, и теперь пытаюсь создать заново, без foreign key.
И сейчас даже при элементарном запросе, например:

CREATE TABLE `my_edited_persons` (`a` INT) ENGINE=InnoDB

Выводится ошибка: /* SQL Error (1005): Can't create table 'my_edited_persons' (errno: 150)  Foreign key constraint is incorrectly formed */
При этом, если таблицу назвать по-другому - запрос работает. Но меня это не устраивает. Кто здесь хозяин, в конце концов?

Движок обязательно должен быть InnoDB.

[upd]

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


Комментарий модератора:
Все возможные причины возникновения этой ошибки перечислены в статье
Errno 150 foreign key constraint is incorrectly formed

Отредактированно bigbobah (18.09.2010 19:00:10)

Неактивен

 

#2 18.09.2010 19:30:36

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5278

Re: Ошибка foreign key при его отсутствии, InnoDB

Причин у ошибки номер 150 может быть много, теперь уж не узнать в чем было дело. На будущее смотрите, что пишет 

show innodb status;
после возникновения этой ошибки.

Неактивен

 

#3 18.09.2010 19:46:54

bigbobah
Участник
Зарегистрирован: 18.09.2010
Сообщений: 5

Re: Ошибка foreign key при его отсутствии, InnoDB

стыдно признаться, но мой хостинг не даёт мне разрешения на этот запрос

Неактивен

 

#4 19.09.2010 11:31:40

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 21.01.2007
Сообщений: 6641

Re: Ошибка foreign key при его отсутствии, InnoDB

Внешний ключ — это отдельная табличка many-to-many в пространстве
данных InnoDB, которая не видна из MySQL. Если вследствие какой-то
ошибки, эта табличка не удалилась, то проверки остаются. Скорее всего,
это ошибка MySQL, но воспроизвести ее мне не удается. Думаю, что это
проблема конкретно Вашего хостинга.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson