これは、2 つの列に対する一般的な制約ではありません。
以下は、外部キー ref1、ref2 を持つテーブルです。
connection_id | ref1_id | ref2_id
1 | 1 | 2
許可したい:
connection_id | ref1_id | ref2_id
1 | 1 | 2
2 | 1 | 3
ただし、次の 2 つを許可しません。
(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 のペアが 1 つだけ必要なため、(ref1,ref2) または (1,2) のペアは (2,1) と同じであり、一意のキー制約によって許可されない必要があります。MySQLでそれを行う方法はありますか?
すでに回答されていると確信していますが、検索すると、常に2つの列で典型的な一意の制約にヒットします。