這不是兩列的典型約束。MySQL - 兩列的組合約束
這裏是一個表的外鍵REF1,REF2:
connection_id | ref1_id | ref2_id
1 | 1 | 2
我想允許:
connection_id | ref1_id | ref2_id
1 | 1 | 2
2 | 1 | 3
但不允許兩個:
(typical unique key on ref1,ref2 - this I know how to do)
connection_id | ref1_id | ref2_id
1 | 1 | 2
2 | 1 | 2
也! !:
(this is the problem)
connection_id | ref1_id | ref2_id
1 | 1 | 2
2 | 2 | 1
因爲我想只有一個ref1-ref2對 - 對我來說,pair(ref1,ref2)或(1,2)與(2,1)相同,並且應該被唯一的鍵約束禁止。有沒有辦法在MySQL中做到這一點?
我確信它已經被回答了,但是在搜索時我總是碰到兩列上的典型唯一約束。
+1對於這些想法,不幸的是,強制的命令不適用於我的情況,我想盡可能地避免使用觸發器,如果可以的話,也許我必須作爲最後的手段來做到這一點。 – Resh32
你有這樣的觸發器應該拋出一個錯誤的例子嗎? – Resh32
如果我正確理解邏輯,這些觸發器將默默忽略違反約束的行,而不是拒絕執行插入/更新? – wildplasser