在phpMyAdmin中设置外键?

我正在用phpMyAdmin建立一个数据库。我有两个表(foobar),在它们的主键上建立索引。我试图在它们之间创建一个关系表(foo\u bar),使用它们的主键作为外键

我将这些表创建为MyISAM,但后来将所有三个表都更改为InnoDB,因为我了解到MyISAM不支持外键。所有id字段都是INT(11)

当我选择foo\u bar表格时,单击"“关系视图”;链接,并尝试将FK列设置为database.foo.iddatabase.bar.id,显示“;没有定义索引&引用在每列旁边

我错过了什么

澄清/更新

为了简单起见,我想继续使用phpMyAdmin。我目前正在使用XAMPP,它非常简单,可以让我专注于PHP/CSS/Javascript,它附带了phpMyAdmin

此外,尽管我还不能设置显式外键,但我有一个关系表,可以执行如下连接:

选择*
来自富
内连接foo_杆
ON foo.id=foo_bar.foo_id
内连接杆
ON foo_bar.bar_id=bar.id;

没有在数据库中显式定义FKs让我很不舒服

如果您想使用phpMyAdmin建立关系,您必须做两件事。首先,您必须在引用表中的外键列上定义一个索引(在您的例子中是sofoo_bar.foo_id)。然后,转到关系视图(在引用表中)并选择引用的列(在您的例子中是foo.id)以及更新和删除操作

我认为如果有多个表相互链接,外键是有用的,特别是如果正确设置引用选项,删除脚本将变得非常短

编辑:确保两个表都选择了InnoDB引擎

发表评论