Flask中外键约束删除 "needed in a foreign key constraint"

版权声明:转载请标明出处 https://blog.csdn.net/gymaisyl/article/details/88839456

定义2个表,如下图:
IpFlowDetail的IpHeadId字段是关联了IpFlowHead表的外键,在后期发现不需要这个外键了,在删除这个外键关联字段column时,报出错误"Cannot drop index ‘IpHeadId’: needed in a foreign key constraint")

在这里插入图片描述
之后查看一下迁移的版本文件,(正确的迁移文件中的顺序如下:)
在这里插入图片描述

KEY与index的意思相近,都是创建索引,所以在创建外键的时候,会使用coinstraint来将对字段进行限制,将索引IpHeadId与外键IpHeadId与外表IpFlowHead表的ipFlowId限制关联(constraint也有索引的意思,on面跟语句),那么现在我想直接删除IpHeadId这个字段,这时,直接使用"alter table school drop column IpHeadId"会出现Cannot drop index ‘PK_school_province’: needed in a foreign key constraint;大意是不能删除被外键限制的索引。那么这个时候我们需要将外键限制的索引给删除掉。在索引删除之后,再删除该外键的column就可以删除了。

总结:
在flask中删除外键时,需要先进行外键限制coinstraint的删除,限制删除之后,再讲该外键的索引index删除,索引删除后,对于外键的行column,即可进行删除。

猜你喜欢

转载自blog.csdn.net/gymaisyl/article/details/88839456
今日推荐