有问题的表格是:
询问
supplier_enquiry
引用
约束如下:
CONSTRAINT supplier_enquiry_ibfk_1
FOREIGN KEY(enquiry_id
)参考enquiry
(id
)ON DELETE CASCADE
CONSTRAINT quote_ibfk_1
FOREIGN KEY(supplier_enquiry_id
)参考supplier_enquiry
(id
)ON DELETE CASCADE
约束enquiry_ibfk_9
外键(accepted_quote_id
)参考quote
(id
)
所以我希望这种方式起作用的方式是:
我遇到的问题是删除“查询”记录时。因为它需要首先删除子记录,即'supplier_enquiry'和'quote',如果'accepted_quote_id'引用'quote',则不能删除'inquiry'。
知道如何克服这个问题?
答案 0 :(得分:1)
通过使其他两个表依赖于查询来消除循环引用。
所以:
quote.enquiry_id引用enquiry.id
和
supplier_enquiry.enquiry_id引用enquiry.id
编辑:可能不清楚。我建议在引用表上引用一个新约束,将enquiry_id引用到enquiry.id,然后删除enquiry_ibfk_9答案 1 :(得分:0)
在删除之前将引用更新为NULL。