2012-05-02 6 views
1

私はMySQLのワークベンチを使用してデータベース用のスキーマを作成しています。私のテーブルの1つにpersonIdのフィールドと国のID番号が含まれていれば(そうでないかもしれません)MySQLワークベンチで別のフィールドが「PK」の場合、「UQ」はどのように機能しますか?

personIdフィールドは、スキーマ全体で固有の識別子として使用されるフィールドなので、 "PK"と "NN"オプションを選択しました。今は、すでに存在するエンティティと同じ国家IDを持つ場合、システムが別のpersonIdを持つ新しい挿入を許可しないようにしたいと思います。しかし、国家IDは主キーではなく、実際にはNULLになる可能性があります。

私は 'UQ'オプションを検討していましたが、実際に何が行われているかについての明確な文書は見つかりません。私は実際にそれらがユーザーによって挿入されるか、nullを残したがっているときに自動的に数値を作成するかどうか心配です。誰か知っていますか?

答えて

2

UQタグのフィールドは、unique keyです。これにより、NULLを除いて、特定のフィールドで一意性が強制されます。これはまさに私の国のIDフィールドに必要なものです。 http://dev.mysql.com/doc/refman/5.5/en/create-table.htmlから

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

関連する問題