phpmyadmin错误:无法创建表错误号150

时间:2015-07-29 07:09:20

标签: php mysql phpmyadmin

我尝试创建下表:

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

Phpmyadmin显示错误为

  

#1005 - 无法创建表'friends.updates'(错误号码:150)(详情......)

当我点击'详细信息'时,我得到:

  

InnoDB文档   支持事务,行级锁定和外键   [变量|缓冲池| InnoDB状态]

请帮助我克服这个错误。

2 个答案:

答案 0 :(得分:2)

似乎user表中的user_id字段数据类型是int,而在这里您正在创建与varchar(45)的关系。

对于外键数据类型应该相同,所以请保持在用户表中。

答案 1 :(得分:1)

如果错误消息引用错误150,则表创建失败,因为未正确形成外键约束。如果错误消息引用错误-1,则表创建可能失败,因为该表包含与内部InnoDB表的名称匹配的列名。

参考:: http://dev.mysql.com/doc/refman/5.0/en/innodb-error-codes.html

你也可以参考这个链接

Error Code: 1005. Can't create table '...' (errno: 150)