gpt4 book ai didi

mysql表多外键级联

转载 作者:行者123 更新时间:2023-11-30 00:33:41 25 4
gpt4 key购买 nike

假设我有 4 个相关的表,如下图所示

广告 --> 可广告 <-- advertisable_product --> 产品

3个->的含义如下,它们都是OneToOne相关的

  1. ad 具有 advertisable 的 FK(可为空)
  2. advertisable_product 具有 advertisable 的 FK
  3. advertisable_product 具有 product 的 FK

我已在 3 上设置删除级联约束。

问题是:当 product 被删除时,advertisable_product 会被删除级联约束自动删除,但是如何使其也删除 advertisable 并将 ad 中的 FK 设置为 null。

我能想到的唯一方法是编写一个触发器来做到这一点。有没有更好的解决方案或更好的设计来实现这一点?

欢迎任何建议或评论,谢谢~

最佳答案

这是不可能的。根据 FK 逻辑,可能还有另一种产品与可广告相关。

假设有 1 个可广告 - “A1”和 2 个产品“P1”和“P2”。advertisable_product 有 2 条记录

A1 P1

A1 P2

现在您删除“P1”。 “A1 P1”被级联删除,但“A1”无法删除,因为它在“A1 P2”中使用了

关于mysql表多外键级联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22341402/

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