ホームページ > データベース > mysql チュートリアル > MySQL は固有の制約を持つ Null 値をどのように処理しますか?

MySQL は固有の制約を持つ Null 値をどのように処理しますか?

Barbara Streisand
リリース: 2024-12-07 00:45:12
オリジナル
600 人が閲覧しました

How Does MySQL Handle Null Values with Unique Constraints?

MySQL の一意制約と Null 値

データベース設計では、テーブル内のすべての行に必ず固有の制約が含まれるようにするために、一意制約がよく使用されます。特定の列または列セットの個別の値。ただし、次のような疑問が生じます: これらの制約を適用するとき、MySQL は null 値を異なる方法で処理しますか?

MySQL の Null 値と一意の制約

他のリレーショナル データベース管理システムとは異なります ( RDBMS)、MySQL では、一意制約のあるカラム内で複数の null 値を許可します。これは、一意制約が適用されても、MySQL は、指定されたカラムの複数の行に null 値が含まれることを妨げないことを意味します。

この動作を説明するために、次の MySQL ステートメントを考えてみましょう。

CREATE TABLE table1 (x INT NULL UNIQUE);
ログイン後にコピー

この例では、「x」列が null 値を受け入れる整数として宣言され、一意制約が列に適用されます。次の挿入ステートメントを実行すると:

INSERT INTO table1 VALUES (1);
INSERT INTO table1 VALUES (1); -- Duplicate entry '1' for key 'x'
INSERT INTO table1 VALUES (NULL);
INSERT INTO table1 VALUES (NULL);
ログイン後にコピー

は次の結果を生成します:

SELECT * FROM table1;
ログイン後にコピー
x
NULL
NULL
1
ログイン後にコピー

ご覧のとおり、MySQL では、一意の制約。この動作は、一意の制約で列内の複数の null 値を制限する SQL Server 2005 以前などの他の RDBMS とは異なります。

以上がMySQL は固有の制約を持つ Null 値をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート