在phpMyAdmin中添加约束条件

问题描述:

我觉得我很愚蠢,但是我无法在phpMyAdmin界面的任何位置找到向外键添加约束的地方,例如, CASCADE ON DELETE在phpMyAdmin中添加约束条件

我在这里和phpMyAdmin wiki上找过类似的问题,但是我找不到任何关于它的东西。

我意识到我可以通过查询界面来做到这一点,但我想知道如何通过图形界面来做到这一点。

+0

[在phpMyAdmin中设置外键?]可能重复(http://*.com/questions/459312/setting-up-foreign-keys-in-phpmyadmin) – 2012-02-29 13:11:00

+1

我发现它并没有'帮助。现在问题解决了。 – Alex 2012-02-29 13:24:40

+0

哦,是的,这两个表(具有FK和引用的那个应该是InnoDB,或者在另一个事务引擎中)。 – 2012-02-29 13:27:10

首先,你应该有你的存储引擎作为InnoDB。然后选择一个表并转到“结构”选项卡。

在表格下方您会看到'关系视图',点击它。从那里你可以添加约束。

+0

啊谢谢,存储引擎设置错了,这就是为什么我不能添加约束。 – Alex 2012-02-29 13:24:02

+0

你是welocme,Alex。很高兴我能帮上忙。 – utsikko 2012-02-29 13:26:49

+0

我看到'+索引',没有'关系视图'。请帮助设置外键约束。 – 2014-01-21 15:50:33

CASCADE

每当在主(参考)表行被删除(相应的更新),孩子的各行(引用)有匹配的外键列的表会被删除(RESP。更新)。这称为级联删除(resp。update [2])。

RESTRICT

时引用在引用表中的值的外键表中存在行的值不能被更新或删除。同样,只要从外键表中引用该行,就不能删除该行。

NO ACTION

NO ACTION和制约非常相像。 NO ACTION和RESTRICT的主要区别在于,在NO ACTION中,参照完整性检查是在尝试更改表后完成的。 RESTRICT在尝试执行UPDATE或DELETE语句之前执行检查。如果参照完整性检查失败,那么这两个参照行为的作用相同:UPDATE或DELETE语句将导致错误。

SET NULL

引用行中的外键值设置为NULL当引用的行被更新或删除。这只有在引用表中的相应列可以为空时才有可能。由于NULL的语义,外键列中带有NULL的引用行不需要引用行。