3

メーリングリストのテーブルがあります。サインアップするユーザーごとにアクティベーションキーがあります。アクティベーションキーは、サインアップ時に最初に作成されます。各キーは一意です。

ユーザーが登録を確認すると、これはデータベース内の空の文字列になります。

フィールドにnullがある場合、一意の制約を作成する方法はありますか?

つまり、nullでない場合はすべての値、または一意の空の文字列が許可されます。

一意に設定してnullを許可しましたが、これは機能しません。nullと一意の値を入力できません。つまり、nulluniqueに設定するとnullを複数回入力できません。

4

2 に答える 2

2

いいえ、そのような一意の制約を作成することはできません。一意の制約はそれだけであり、一意であり、NULLまたは空の文字列を持つ複数の行が重複する行になるためです。ただし、この列を空にするのではなく、登録が確認されたことを示すブールフィールドを使用することをお勧めします。これははるかに簡単で、そのフィールドに一意の制約を使用できます。

于 2012-08-09T17:17:46.250 に答える
2

mysqlで

列または一意のインデックスは、すべての値がnull値なしで入力された場合にのみ制約をチェックします

于 2020-05-09T09:18:00.290 に答える