3
我是比较新的MySQL中的外键的使用,并希望对于他们一些帮助。外键:单字段引用多个字段(相同的表)
我的问题是我有一个表中包含多个列,其中两个依赖于从另一个表的键。总体方案是这样的,其中“A”和“B”的列显示它们之间的关系:
Table 1 (a)
Table 2 (a,b)
Table 3 (a,b) <-- Table in question
我有表3中的外键,将级联更新和删除表1.发生什么,我我想要做的是在更改表2(在这种情况下a应该保持不变)的情况下,将更新和删除将表3中的列b设置为NULL。有没有办法使用外键来建立这种关系?使用触发器(以前从未使用过)会更好吗?
预先感谢您!
编辑:为了进一步阐明,表2具有a和b作为其主键和改变表2将导致在表3b中,以反映这些变化。
为例:
Table 1:
a
1
2
Table 2:
a b
1 1
1 2
2 1
2 2
Table 3:
a b
1 1
2 1
2 2
从表2中删除行1目前导致:
Table 1:
a
1
2
Table 2:
a b
1 2
2 1
2 2
Table 3:
a b
1 NULL
2 NULL
2 2
我想是:
Table 1:
a
1
2
Table 2:
a b
1 2
2 1
2 2
Table 3:
a b
1 NULL
2 1
2 2
对不起,我应该已经更清楚了。这是我原来有,但问题是,表3的B柱都被设置为NULL,但我需要在表2中的变化(有A和B作为其主键),以反映其在表3中的变化。换句话说,当表2中的行被删除时,只有与表2的主键匹配的行才会受到影响。 – Jason
我真的很感谢你的帮助,并更新了我的问题,希望为我的问题提供足够的信息。对不起,第一次不清楚。 – Jason
@Jason好吧,那么我相信你会需要一个触发器。然而这个用例很奇怪,你能解释一下你的表格及其关系的含义吗?我怀疑你的结构可以优化。 – RandomSeed