Невозможно создать таблицу (errno: 150) InnoDB добавляет ограничения внешнего ключа

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

Я рассмотрел все рекомендации на http://verysimple.com/2006/10/22/mysql-error-number-1005-cant-create-table-mydbsql-328_45frm -errno-150 / и http://forums.mysql.com/read.php?22,19755,19755#msg-19755 , но ничего.

надеюсь, что кто-то указывает на глупая ошибка.

вот таблицы:

CREATE  TABLE IF NOT EXISTS `shop`.`category` (
  `id` INT(11) NOT NULL AUTO_INCREMENT ,
  `category_id` INT(11) NOT NULL ,
  `parent_id` INT(11) NULL DEFAULT '0' ,
  `lang_id` INT(11) NOT NULL ,
  ...other columns...
  PRIMARY KEY (`id`, `category_id`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;



CREATE  TABLE IF NOT EXISTS `shop`.`product_category` (
  `category_id` INT(11) NOT NULL ,
  `product_id` INT(11) NOT NULL ,
  INDEX `fk_product_category_category1_zxc` (`category_id` ASC) ,
  CONSTRAINT `fk_product_category_category1_zxc`
    FOREIGN KEY (`category_id` )
    REFERENCES `shop`.`category` (`category_id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;

Код ошибки: 1005. Не удается создать таблицу 'shop.product_category' (номер ошибки: 150)

6
задан Evgeny Tryastsin 25 August 2011 в 02:09
поделиться