複製エントリを許可しないためのユニークなキーを修正する方法
-
19-09-2019 - |
質問
私の問題は次のとおりです。キー「IDX_SR_U_IDENTITY_FINGERPRINTPROFILE」は、フィールド「C_R_FINGERSPRINT」と「C_R_Profile」を一意に制限することを目的としています。
テーブル内の4つのエントリすべてがこれらの2つのフィールドで同じ値を持っているため、私は何か間違ったことをしたようです。 2つのレコードが同じ指紋または同じプロファイルを持っているが、両方ではない場合は大丈夫です。
このユニークなキーを正しく指定して、そのような複製が許可されないようにするにはどうすればよいですか?
(ソース: rigel222.com)
解決
私はあなたのキーが正しいと思いますが、mysqlはそれを適用しません NULL
値。 作成テーブルを作成するためのMySQLドキュメント 州:
一意のインデックスは、nullを含む可能性のある列の複数のnull値を可能にします。
(1,2)のようなエントリは一度だけ発生する可能性がありますが、(1、null)のようなエントリは数回発生する可能性がありますが、それらは重複しているとは見なされません。 NULL
.
ユースケースに応じて、禁止することができます NULL
2つの列が問題を回避します。
所属していません StackOverflow