有一個有趣的情況:我有一個從a.name(子表)到b.name(父表)的外鍵。 b.name沒有唯一的約束,所以它可能包含重複的值。MySQL:引用兩個父項的外鍵
如果我在b.name 兩次把名字「鮑勃」,然後把它放在a.name,我不能再刪除或B表更新「鮑勃」的要麼實例。在這兩種情況下,它都會抱怨,通過刪除/更新表b中的行,將a.name鏈接到b.name的FKey將失敗。
現在,這是有道理的,但我希望能夠告訴FKey只有在表b中存在no其他實例'bob'時纔會失敗。因此,如果我在b.name中有多個'bob'實例,我可以更改/刪除除最後一個以外的任何實例。
[注意,這樣做明顯並添加上b.name唯一約束不會工作,因爲它會導致應用程序中的「未定義行爲」我沒有寫]
任何想法?
不知道我是如何錯過的。謝謝。 – dordal 2010-02-05 01:06:35