gpt4 book ai didi

mysql - 在 phpMyAdmin 中设置外键?

转载 作者:行者123 更新时间:2023-11-29 21:07:57 31 4
gpt4 key购买 nike

我正在使用 phpMyAdmin 设置数据库。我有两个表(foobar),根据主键建立索引。我正在尝试在它们之间创建一个关系表 (foo_bar),使用它们的主键作为外键。

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

当我选择foo_bar表时,单击“关系 View ”链接,并尝试将FK列设置为database.foo.id database.bar.id,它在每列旁边显示“未定义索引!”

我错过了什么?

澄清/更新

为了简单起见,我想继续使用 phpMyAdmin。我目前正在使用 XAMPP,它很容易让我专注于 PHP/CSS/Javascript,并且它附带 phpMyAdmin。

此外,虽然我还无法设置显式外键,但我确实有一个关系表并且可以执行如下连接:

SELECT * 
FROM foo
INNER JOIN foo_bar
ON foo.id = foo_bar.foo_id
INNER JOIN bar
ON foo_bar.bar_id = bar.id;

不在数据库中显式定义 FK 只是让我感到不舒服。

最佳答案

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

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

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

关于mysql - 在 phpMyAdmin 中设置外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36651374/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com