Zhong__[23000][1451] Cannot delete or update a parent row: a foreign key constraint fails

本文探讨了在使用Django创建一对多的models类并生成MySQL表时,直接操作数据库导致on_delete=models.CASCADE不生效的问题。文章强调了通过model操作数据库才能使级联删除生效,对于理解Django模型和数据库操作有重要意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过django创建了一对多的models类  生成了MySQL表  

在模型中也定义了models.ForeignKey(Your table name,on_delete=models.CASCADE)

在主表中删除有关联的数据时报错:

[23000][1451] Cannot delete or update a parent row: a foreign key constraint fails

经过认真思考并测试之后  明白了原因  不是on_delete=models.CASCADE未生效  而是直接操作的MySQL数据库  没有通过model操作其实就是直接操作数据库  on_delete=models.CASCADE也就不生效了  那么通过model操作删除数据时关联的表数据也会删除  所以问题在这里  通过django  models创建的数据库如果是一对多的关系型数据库  那么也要通过django  model操作数据库才会有期望效果  。。。  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我变了_我没变

随意 。。。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值