MySQL 一意制約: Null 値
MySQL では、指定されたカラム内の値の一意性を保証するために一意制約が適用されます。ただし、電子メール アドレスを扱う場合、一般的なシナリオは、オプションのアドレスまたは指定されていないアドレスを表すために null 値を使用することです。これにより、次のような疑問が生じます:
MySQL では、一意性制約を持つカラム内で複数の null 値を許可できますか?
答え:
はい、MySQL では一意制約のあるカラム内で複数の null 値を許可します。この動作は、他の特定のデータベース システムとは異なります。
例:
次の SQL ステートメントは、一意として定義され、許可されている整数列 x を持つ table1 という名前のテーブルを作成します。 null 値:
CREATE TABLE table1 (x INT NULL UNIQUE);
このテーブルに重複した null 値を挿入しても、エラー:
INSERT table1 VALUES (1); INSERT table1 VALUES (1); -- Duplicate entry '1' for key 'x' INSERT table1 VALUES (NULL); INSERT table1 VALUES (NULL);
テーブル 1 内のすべてのレコードを取得するクエリを実行すると、次の結果が生成されます:
SELECT * FROM table1;
x |
---|
NULL |
NULL |
1 |
注: この動作は固有ですMySQLに。 SQL Server 2005 以前などの他のデータベース システムでは、一意の制約により列内の単一の null 値の許容が制限されています。
以上がMySQL の一意の制約は複数の NULL 値を処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。