2013-12-18 23 views
0

我在解决这个问题上都试过了,是的,我知道,这种类型的问题已经被要求在这里,但我没能解决我的问题 这是mysql数据库mysql表创建错误代码:1005在这种特殊情况下

Error Code: 1005 

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

外键结构(即lengthtype),那么什么可以在创建表

表这是给错误可能出现的问题都匹配是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

感谢名单了很多你提到毕竟工作的查询。 –

相关问题