ホームページ >データベース >mysql チュートリアル >MySQL の UNIQUE 制約は Null 値を処理できますか?

MySQL の UNIQUE 制約は Null 値を処理できますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-29 22:42:10196ブラウズ

Can MySQL's UNIQUE Constraint Handle Null Values?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。