1

MySQLのワークベンチを使用してデータベースのスキーマを作成しています。私のテーブルの1つには、personIdのフィールドと、国民ID番号(ない場合もあります)が含まれています。

personIdフィールドは、スキーマ全体で一意の識別子として使用されるフィールドであるため、「PK」オプションと「NN」オプションにチェックマークを付けました。ここで、既存のエンティティと同じ国民IDを持っている場合に、システムが別のpersonIdでの新しい挿入を許可しないようにしたいと思います。ただし、国内IDは主キーではなく、実際にはnullである可能性があります。

「UQ」オプションを見てきましたが、実際に何をするのかについての明確なドキュメントが見つかりません。実際にユーザーが挿入したり、nullのままにしたりしたいときに、自動的に数字が作成されるのではないかと心配しています。誰か知っている?

4

1 に答える 1

2

UQ は、フィールドを一意のキーとしてタグ付けします。これにより、NULL を除いて、特定のフィールドの一意性が強制されます。これはまさに私の国民 ID フィールドに必要なものです。

http://dev.mysql.com/doc/refman/5.5/en/create-table.htmlから:

UNIQUE インデックスは、インデックス内のすべての値が個別でなければならないという制約を作成します。既存の行と一致するキー値を持つ新しい行を追加しようとすると、エラーが発生します。すべてのエンジンで、UNIQUE インデックスは、NULL を含むことができる列に対して複数の NULL 値を許可します。

于 2012-05-03T04:23:19.820 に答える