mysql で 2 つの列を一意にすることはできますが、一方の列に挿入された値は、もう一方の列にある場合は重複していると見なされますか?
私はこのコードを試してみましたが、うまくいきません:
ALTER TABLE test
ADD UNIQUE myunique ( col1 ,col2 )
編集:
答えてくれてありがとう、私は他の解決策を見つけますが、トリガーのあるものは避けてください
両方UNIQUE ( col1 ,col2 )
の列の「組み合わせ」は一意であると見なされます。したがって、別の (a,a) がない限り、(a,a) は許可されます。それはあなたが望むものではないようです。
トリガーを使用してみることができますが、それはかなり不器用です。
なぜ 2 つの列が必要なのですか? 列が同じ項目を表している場合 (重複は許可されていないため)、1 つの列の方が優れているのではないでしょうか? 他に違いがある場合は、「ランク」の2番目の列を追加できます...
あなたのコード
ALTER TABLE test
ADD UNIQUE myunique ( col1 ,col2 )
複合的な一意のインデックスが作成され、col1 と col2 の重複エントリが分離されるため、機能しません。あなたが言ったように、これは必要ありません。
私はまだ試していませんが、目的のトリガーを試しましたか?