我正在使用php + mysql(phpMyAdmin)开发一个网站。
我有两张桌子:USERS和FOLLOWERS就像我在下面粘贴的链接一样:
这些表是使用我在此处粘贴的sql脚本创建的:
DROP TABLE IF EXISTS `FOLLOWERS`;
CREATE TABLE IF NOT EXISTS `FOLLOWERS` (
`Follower1_Id` int(10) unsigned NOT NULL,
`Follower2_Id` int(10) unsigned NOT NULL,
PRIMARY KEY (`Follower1_Id`, `Follower2_Id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
(我只是粘贴表“FOLLOWERS”,因为该表是问题所在。)
由于我不知道为什么phpMyAdmin不允许插入外键,所以当我尝试插入基于USERS表的关注者时会出现问题。出于任何原因,当我只有3个用户并且这些用户将1,2,3作为User_Id PK时,我可以插入用户nº5。
显然我使用了phpMyAdmin为我提供的关系模式,但没有结果。
我该怎么办?
答案 0 :(得分:2)
您创建的表是MyISAM表,不幸的是它们不支持外键。
http://www.sitepoint.com/mysql-myisam-table-pros-con/
在PHPMyAdmin中,您可以轻松地将其从MyISAM转换为InnoDB表。这应该启用您所关注的外键功能。
答案 1 :(得分:1)
当你说:
phpMyAdmin不允许插入外键,问题来了 当我尝试根据USERS表插入一个关注者时。
你得到什么类型的错误? 你能给我们更多的信息吗?
答案 2 :(得分:0)
MyISAM
表不支持Foreignkey,它只支持主键。但您可以将其转换为InnoDB
表,然后您可以为其分配外键。