2013-12-18 6 views
0

я попробовал все, что в решении этого вопроса, и да, я знаю, что этот тип вопроса уже задавал здесь, но я не мог решить мою проблему Это mysql базы данныхMySQL код создания таблицы Ошибка: 1005 в этом конкретном случае

Error Code: 1005 

Can't create table '.\project\comments.frm' (errno: 150) 

внешних ключей соответствия в структуре (т.е. length и type), то, что может быть возможной проблемой при создании таблицы

таблицы, которая дает погрешность составляет comments:

CREATE TABLE `comments`(
    `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, 
    `description` VARCHAR(100) NOT NULL, 
    `user_id` INT(10) UNSIGNED NOT NULL, 
    `post_id` INT(10) UNSIGNED NOT NULL, 
    FOREIGN KEY (`post_id`) REFERENCES `posts`.`id`, 
    FOREIGN KEY (`user_id`) REFERENCES `users`.`id`, 
    PRIMARY KEY (`id`) 
) ENGINE=INNODB DEFAULT CHARSET=latin1;` 

Вот сообщений таблица, которая уже создана в databas

CREATE TABLE `posts` (
    `id` int(10) unsigned NOT NULL auto_increment, 
    `title` varchar(30) default NULL, 
    `description` longtext, 
    `image` varchar(50) default NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

Вот таблица пользователей, которые также уже созданы в базе данных

CREATE TABLE `users` (
    `id` int(10) unsigned NOT NULL auto_increment, 
    `user_name` varchar(33) default NULL, 
    `email` varchar(255) NOT NULL, 
    `password` varchar(255) default NULL, 
    `type` varchar(255) NOT NULL, 
    `registrationDate` date NOT NULL, 
    PRIMARY KEY (`id`,`email`,`type`) 
) 
+0

пользователей Да InnoDB –

ответ

1

Ваш синтаксис неверен. REFERENCES ключевого слова должно сопровождаться table (columns):

CREATE TABLE `comments`(
    `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, 
    `description` VARCHAR(100) NOT NULL, 
    `user_id` INT(10) UNSIGNED NOT NULL, 
    `post_id` INT(10) UNSIGNED NOT NULL, 
    FOREIGN KEY (`post_id`) REFERENCES `posts` (`id`), 
    FOREIGN KEY (`user_id`) REFERENCES `users` (`id`), 
    PRIMARY KEY (`id`) 
) ENGINE=INNODB DEFAULT CHARSET=latin1; 
+0

спасибо много запроса вы упомянули работали Afterall. –

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