我尝试创建下表:
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状态]
请帮助我克服这个错误。
答案 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
你也可以参考这个链接