既存の mysql テーブルがあり、1 つのフィールド (varchar) を設定して、一意または空 (デフォルト) にする必要があります。したがって、ユーザーが値を入力しない場合は空です。それ以外の場合、ユーザーは一意の値を入力する必要があります。
どうすればいいですか?
既存の mysql テーブルがあり、1 つのフィールド (varchar) を設定して、一意または空 (デフォルト) にする必要があります。したがって、ユーザーが値を入力しない場合は空です。それ以外の場合、ユーザーは一意の値を入力する必要があります。
どうすればいいですか?
私が読んだことから、標準では、null 値を許可し、一意の制約を持つ列をテーブルに含めることはできないはずです。もしそうなら、それは特別なmysqlエンジンにかかっています(それは他の場所でも予測不可能/予期しない動作を引き起こします)
また、あなたの質問はこれとは逆のようです
MySQL: UNIQUE、ただし DEFAULT NULL - テーブルの作成によって許可されます。複数の NULL を挿入できます。なんで?
ただし、トリガーを使用してこれを強制することもできます。挿入/更新時にトリガーを記述して、値が既に存在するかどうかを確認し、存在する場合はすぐに削除できます。
mysql に渡す前にデータを処理する方がよいと思います。そうでない場合は、テーブルが更新されるたびにトリガートリガーを記述して、ルールに確実に合格するようにすることができます。