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