create table test3
(
id int PRIMARY KEY,
id2 int
);
create unique index ndx_id2 on test3 (id2);
一意のインデックスの目的で、すべてNULL
の値は他のすべての値とは異なると見なされるNULL
ため、一意です。これは、SQL-92 標準の 2 つの可能な解釈 (標準の言語はあいまいです) の 1 つであり、PostgreSQL、MySQL、Firebird、および Oracle が従う解釈です。
Informix と Microsoft SQL Server は、標準の別の解釈に従います。
INSERT INTO test3(id, id2) VALUES (1, null);
INSERT INTO test3(id, id2) VALUES (2, null);
2 番目の INSERT が返されます
一意のインデックスに重複する値を挿入することはできません。[ テーブル名 = test3、制約名 = ndx_id2 ]
SQL CE でエラーが発生しましたが、別の DBMS (Sqlite など) にレコードが正常に追加されました。
一意の制約を持つフィールドで、SQL CE で多くの null 値を入力できるようにする方法は?
PS この問題は Sql 2008 で解決されました SQL Server で一意の制約を持つフィールドに多くの null 値を入力できるようにする方法ですが、SQL CE の決定が必要です