ホームページ >データベース >mysql チュートリアル >MySQL の UNIQUE 制約は Null 値を処理できますか?
MySQL での Null 値に対する一意制約の強制
データベース設計の領域では、データの一意性を確保することが重要です。しかし、一部のデータ値が空になる可能性がある場合はどうなるでしょうか?このようなインスタンスに対応する一意の制約を定義できますか?
MySQL では、答えは「はい」です。 MySQL ドキュメント (バージョン 5.5) には、「UNIQUE インデックスでは、NULL を含むことができるカラムに対して複数の NULL 値を許可する」と記載されています。これは、NULL 値が許可されている場合でも、列に一意制約を作成できることを意味します。
説明のために、製品コードを含むテーブルを考えてみましょう。製品によっては、サプライヤーから提供される固有のコードが存在する場合もありますが、そうでない場合もあります。これに対応するために、次のように製品コード列に一意のインデックスを定義できます:
CREATE TABLE products ( product_code VARCHAR(255) UNIQUE );
デフォルトでは、product_code 列では null 値が許可されます。これは、コードのない製品をテーブルに挿入でき、一意制約は null 以外の値にのみ適用されることを意味します。したがって、たとえば、次の 2 つの行は許可されます:
product_code = 'XYZ123' product_code = NULL
この解決策は、列が null 非許容の場合でも実行可能です。 UNIQUE インデックス内の複数の null 値を処理するデータベースの機能を利用することで、空のデータ値を受け入れながら効果的に一意性を強制できます。
以上がMySQL の UNIQUE 制約は Null 値を処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。