我想用mysql在phymyadmin中的不同表之间创建一个关系。我想要添加级联选项,但每次添加关系时,我并不总是看到级联选项。
例如,在第一个图像中,当我在usergroup和users表中关联usergroupid id时,没有可用的级联选项。但就像在第二张图片中一样,当我在invoicedetails和tripmaster表中关联发票id时,我得到了可用的级联选项。
所以我不能理解为什么层叠选项不是每次都可用。
发布于 2016-09-06 18:55:00
要创建外键约束,表和列需要满足几个条件。
您在示例中遗漏的一个参数是整数值的长度,从屏幕截图中可以看到。它们都需要具有相同的长度(和符号...)所以int(5)
和int(11)
是不兼容的。
您还需要列上的索引,等等。有关所有要求,请参阅manual on foreign key constraints。
发布于 2016-09-06 18:57:00
当您构建这样的关系时,键及其匹配的外键必须具有完全相同的数据类型。
因此,在您的第一个示例中,整数的大小不同(int(5)和int(11),因此MySql无法创建所需的约束,您也无法启用级联删除或更新。
在您的第二个示例中,从屏幕截图中看不清楚,但我假设数据类型匹配。
还要确保整数数据类型既是有符号的,也是无符号的。如果一个是签名的,另一个是未签名的,你会遇到同样的问题。
https://stackoverflow.com/questions/39347160
复制相似问题