外键mysql和phpmyadmin

时间:2014-04-02 22:23:50

标签: php mysql sql database phpmyadmin

我正在使用php + mysql(phpMyAdmin)开发一个网站。

我有两张桌子:USERS和FOLLOWERS就像我在下面粘贴的链接一样:

enter image description here

这些表是使用我在此处粘贴的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为我提供的关系模式,但没有结果。

我该怎么办?

3 个答案:

答案 0 :(得分:2)

您创建的表是MyISAM表,不幸的是它们不支持外键。

http://www.sitepoint.com/mysql-myisam-table-pros-con/

在PHPMyAdmin中,您可以轻松地将其从MyISAM转换为InnoDB表。这应该启用您所关注的外键功能。

答案 1 :(得分:1)

当你说:

  

phpMyAdmin不允许插入外键,问题来了   当我尝试根据USERS表插入一个关注者时。

你得到什么类型的错误? 你能给我们更多的信息吗?

答案 2 :(得分:0)

MyISAM表不支持Foreignkey,它只支持主键。但您可以将其转换为InnoDB表,然后您可以为其分配外键。