mysql表创建错误代码:本例中为1005
我已经尽了一切努力来解决这个问题,是的,我知道这类问题已经在这里被提出了,但我无法解决我的问题 它是mysql表创建错误代码:本例中为1005,mysql,sql,Mysql,Sql,我已经尽了一切努力来解决这个问题,是的,我知道这类问题已经在这里被提出了,但我无法解决我的问题 它是mysql数据库 Error Code: 1005 Can't create table '.\project\comments.frm' (errno: 150) 外键在结构上匹配(即长度和类型),那么创建表时可能出现什么问题 给出错误的表是注释: CREATE TABLE `comments`( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREM
mysql
数据库
Error Code: 1005
Can't create table '.\project\comments.frm' (errno: 150)
外键在结构上匹配(即长度
和类型
),那么创建表时可能出现什么问题
给出错误的表是注释
:
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;`
这是已经在数据库中创建的posts表
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`)
)
你的语法不正确。
REFERENCES
关键字后应紧跟表(列)
:
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;