在PHPMyadmin

时间:2016-09-06 10:48:17

标签: php mysql phpmyadmin

我希望在phymyadmin中使用mysql创建不同表之间的关系。 我想添加级联选项,但每次添加关系时我都不会总是看到级联选项。

No Cascade Option Cascade option available

例如,在第一张图片中,当我在usergroup和users表中关联usergroupid id时,没有可用的级联选项。但是在第二张图片中,当我在invoicedetails和tripmaster表中关联发票ID时,我得到了可用的级联选项。

所以我无法理解为什么每次都没有cascade选项。

2 个答案:

答案 0 :(得分:0)

为了创建外键约束,您的表和列需要满足几个条件。

您在示例中缺少的并且从屏幕截图中可以看到的是整数值的长度。它们都需要具有相同的长度(和符号......),因此int(5)int(11)不兼容。

您还需要列上的索引等。有关所有要求,请参阅manual on foreign key constraints

答案 1 :(得分:0)

当您构建这样的关系时,密钥及其匹配的外键必须具有完全相同的数据类型。

因此,在第一个示例中,整数的大小不同(int(5)和int(11),因此MySql无法创建所需的约束,也无法启用级联删除或更新。

在你的第二个例子中,从截图中看不清楚,但我认为数据类型匹配。

还要确保整数数据类型都是有符号或无符号的。如果一个签名而另一个未签名,你将遇到同样的问题。