#1005 - 无法创建表'addfriend.updates'(错误号:150)

时间:2016-04-08 14:19:49

标签: mysql database

我想创建这个表,但它只是因为这个错误而拆分:

1005 - 无法创建表'jotech.updates'(错误号:150)

我的一位朋友说是因为没有正确形成外键约束。但他不知道如何解决它。

请帮忙。

    CREATE TABLE `users` (
`user_id` INT(11) NOT NULL AUTO_INCREMENT ,
`username` VARCHAR(45) ,
`password` VARCHAR(100) ,
`email` VARCHAR(45) ,
`friend_count` INT(11) ,
`profile_pic` VARCHAR(150),
PRIMARY KEY (`user_id`));



    CREATE TABLE `updates` (
`update_id` INT(11) AUTO_INCREMENT ,
`update` VARCHAR(45),
`user_id_fk` VARCHAR(45),
`created` INT(11) ,
`ip` VARCHAR(45),
PRIMARY KEY (`update_id`),
FOREIGN KEY (user_id_fk) REFERENCES users(user_id));


CREATE TABLE `friends` (
`friend_one` INT(11) ,
`friend_two` INT(11) ,
`status` ENUM('0','1','2') DEFAULT '0',
PRIMARY KEY (`friend_one`,`friend_two`),
FOREIGN KEY (friend_one) REFERENCES users(user_id),
FOREIGN KEY (friend_two) REFERENCES users(user_id));

1 个答案:

答案 0 :(得分:1)

外键列的数据类型必须与完全匹配它引用的列的数据类型。

问题在于:

 `user_id_fk` VARCHAR(45)
              ^^^^^^^^^^^

这不能是外键列引用:

 `user_id` INT(11)
           ^^^^^^^

需要定义updates中的外键列:

 `user_id_fk` INT(11)
              ^^^^^^^

为了定义外键约束。