gpt4 book ai didi

mysql - 外键约束问题

转载 作者:行者123 更新时间:2023-11-29 14:57:06 24 4
gpt4 key购买 nike

有问题的表是:

查询

  • ID
  • accepted_quote_id

supplier_enquiry

  • ID
  • enquiry_id

引用

  • ID
  • enquiry_id
  • supplier_enquiry_id

约束条件如下:

  • 约束 supplier_enquiry_ibfk_1 外键 (enquiry_id) 引用 enquiry (id) 删除级联

  • 删除级联时约束 quote_ibfk_1 外键 (supplier_enquiry_id) 引用 supplier_enquiry (id)

  • 约束 enquiry_ibfk_9 外键 (accepted_quote_id) 引用 quote (id)

所以我期望它的工作方式是:

  1. 如果您删除“enquiry”,则会删除子“supplier_enquiry”记录
  2. 如果您删除“supplier_enquiry”,则会删除子“报价”记录
  3. 如果“查询”引用了某个“报价”的 ID,则您无法删除该“报价”

我遇到的问题是删除“查询”记录时。因为需要先删除子记录,即“supplier_enquiry”和“quote”,如果“accepted_quote_id”引用了“quote”,那么“enquiry”就无法删除。

知道如何克服这个问题吗?

最佳答案

通过使另外两个表依赖于查询,可以摆脱循环引用。

所以:

quote.enquiry_id引用enquiry.id

还有:

supplier_enquiry.enquiry_id 引用 enquiry.id

编辑:这可能还不清楚。我建议对引用 enquiry_id 到 enquiry.id 的报价表创建一个新的约束,然后删除 enquiry_ibfk_9

关于mysql - 外键约束问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4316624/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com