mysql表创建错误代码:在这种特定情况下为1005

时间:2013-12-18 12:53:18

标签: mysql sql

我已经尝试过解决这个问题的一切,是的,我知道这里已经提到了这类问题,但我无法解决我的问题 它是mysql数据库

 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;`

这是已在数据库中创建的帖子表

 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;

这是也已在数据库中创建的users表

 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`)
)

1 个答案:

答案 0 :(得分: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;