Ошибка «Невозможно создать таблицу…» при добавлении ИНОСТРАННОГО КЛЮЧА

Я создал таблицу с помощью сценария:

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

DROP TABLE IF EXISTS `Table1`;
CREATE TABLE IF NOT EXISTS `Table1` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `parentId` bigint(20) DEFAULT NULL,
  `name` varchar(1024) NOT NULL,
  `description` varchar(16384) NOT NULL DEFAULT '',
  `imageId` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `name` (`name`(255)),
  KEY `parentId` (`parentId`),
  KEY `imageId` (`imageId`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=27 ;


INSERT INTO `Table1` (`id`, `parentId`, `name`, `description`, `imageId`) VALUES
(0, NULL, 'name1', '', NULL),
(12, 0, 'name2', '', NULL);

Затем я пытаюсь добавить внешний ключ:

ALTER TABLE `Table1`
  ADD CONSTRAINT `Table1_ibfk_2` 
    FOREIGN KEY (`parentId`) REFERENCES `Table1` (`id`);

И получаю следующую ошибку:

ERROR 1005 (HY000): Can't create table 'sandbox.#sql-c28_4c' (errno: 150)

Что не так?

Я запускаю

SHOW ENGINE INNODB STATUS;

Вот ПОСЛЕДНЯЯ ОШИБКА ИНОСТРАННОГО КЛЮЧА:

------------------------
LATEST FOREIGN KEY ERROR
------------------------
110504 22:06:55 Error in foreign key constraint of table sandbox/#sql-c28_61:

    FOREIGN KEY (`parentId`) REFERENCES `Table1` (`id`):
Cannot resolve table name close to:
 (`id`)
------------

Но это не помогает мне понять, что не так.

Я использую Windows Vista, MySql 5.5.11

ОБНОВЛЕНИЕ:

Проблема появляется, когда я обновляюсь с MySql 5.0.67.

8
задан sergtk 4 May 2011 в 19:38
поделиться