Ситуация импорта базы данных - PullRequest
0 голосов
/ 26 марта 2012

Mysql не хочет добавлять эту базу данных в мой раздел базы данных localhost.

Я что-то не так делаю?

db.sql Этот туториал: https://github.com/samanz/cakecart

Ошибка:

SQL query:

CREATE TABLE `categories` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
`name` VARCHAR( 50 ) NULL default NULL ,
`parent_id` INT( 11 ) UNSIGNED default '0',
`order` INT( 3 ) default '0',
`image` VARCHAR( 50 ) NULL default NULL ,
`ids` VARCHAR( 225 ) NULL default NULL ,
`url` VARCHAR( 255 ) NULL default NULL ,
PRIMARY KEY ( `id` ) ,
FOREIGN KEY ( `parent_id` ) REFERENCES categories( `id` ) ,
UNIQUE KEY `url` ( `url` )
);

MySQL said: Documentation
#1005 - Can't create table 'cake_cart.categories' (errno: 150) 

Ответы [ 2 ]

2 голосов
/ 26 марта 2012

Ошибка 150 - это проблема внешнего ключа.Вероятно, вызвано:

FOREIGN KEY ( `parent_id` ) REFERENCES categories( `id` ) ,

Невозможно сделать ссылку "внешнего" ключа на ту же таблицу, которую вы создаете.Вместо этого просто внесите в индекс столбец parent_id.

KEY `parent_id` ( `parent_id` ) ,
1 голос
/ 26 марта 2012

Должно выглядеть примерно так ...

CREATE TABLE IF NOT EXISTS `categories` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `parent_id` int(11) unsigned NOT NULL DEFAULT '0',
  `order` int(3) NOT NULL DEFAULT '0',
  `img` varchar(50) NOT NULL,
  `ids` varchar(255) NOT NULL,
  `url` varchar(255) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `url` (`url`),
  KEY `parent_id` (`parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Я обновил структуру и запустил ее в своей базе данных, и она сработала.

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