MySQL の一意制約と Null 値
データベース テーブルを定義する場合、一意制約は、データの整合性を維持する上で重要な役割を果たします。特定の列の一意性。ただし、よくある疑問が生じます。「MySQL データベースでは、一意の制約を持つカラムに複数の null 値を許可できますか?」
Null 値と一意の制約
MySQL は独自の動作を提供しますnull 値と一意の制約について。多くのデータベースの標準とは異なり、MySQL では一意制約で指定されたカラムに複数の null 値を含めることができます。これは、一意制約の対象となる列に NULL 値を持つ行がデータベースに複数存在する可能性があることを意味します。
デモの例
この動作を説明するには、次のように考えます。次の MySQL クエリ:
CREATE TABLE table1 (x INT NULL UNIQUE); INSERT table1 VALUES (1); INSERT table1 VALUES (1); -- Duplicate entry '1' for key 'x' INSERT table1 VALUES (NULL); INSERT table1 VALUES (NULL); SELECT * FROM table1;
このクエリの結果は次のようになります。 be:
x NULL NULL 1
ご覧のとおり、一意制約にもかかわらず、テーブルには x 列に null 値を持つ 2 つの行が含まれています。
非 MySQL データベースへの影響
すべてのデータベースがこの動作を共有するわけではないことに注意することが重要です。たとえば、SQL Server 2005 以前のバージョンでは、一意制約のある列では 1 つの null 値のみが許可されます。一貫性を確保するには、使用されている特定のデータベース システムの固有の制約処理特性を認識することが重要です。
以上がMySQL の UNIQUE 制約は複数の NULL 値を許可できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。