2

既存の mysql テーブルがあり、1 つのフィールド (varchar) を設定して、一意または空 (デフォルト) にする必要があります。したがって、ユーザーが値を入力しない場合は空です。それ以外の場合、ユーザーは一意の値を入力する必要があります。

どうすればいいですか?

4

3 に答える 3

1

私が読んだことから、標準では、null 値を許可し、一意の制約を持つ列をテーブルに含めることはできないはずです。もしそうなら、それは特別なmysqlエンジンにかかっています(それは他の場所でも予測不可能/予期しない動作を引き起こします)

また、あなたの質問はこれとは逆のようです

MySQL: UNIQUE、ただし DEFAULT NULL - テーブルの作成によって許可されます。複数の NULL を挿入できます。なんで?

ただし、トリガーを使用してこれを強制することもできます。挿入/更新時にトリガーを記述して、値が既に存在するかどうかを確認し、存在する場合はすぐに削除できます。

于 2013-09-05T12:23:47.440 に答える
0

mysql に渡す前にデータを処理する方がよいと思います。そうでない場合は、テーブルが更新されるたびにトリガートリガーを記述して、ルールに確実に合格するようにすることができます。

于 2013-09-05T12:24:10.003 に答える