create table test3
(
id int PRIMARY KEY,
id2 int
);
create unique index ndx_id2 on test3 (id2);
出于唯一索引的目的,所有NULL
值都被视为与所有其他NULL
值不同,因此是唯一的。这是SQL-92标准的两种可能解释之一(标准中的语言含糊不清),并且是PostgreSQL,MySQL,Firebird和Oracle的解释。
Informix和Microsoft SQL Server遵循该标准的其他解释。
INSERT INTO test3(id, id2) VALUES (1, null);
INSERT INTO test3(id, id2) VALUES (2, null);
第二次INSERT返回
无法将重复值插入唯一索引。 [表名 = test3,约束名称= ndx_id2]
SQL CE出错但成功将记录添加到另一个DBMS,例如Sqlite。
如何在具有唯一约束的字段中允许在SQL CE中输入大量空值?
P.S。 Sql 2008 How to allow in the field with a unique constraint to enter a lot of null values in SQL Server已解决此问题,但需要决定SQL CE
答案 0 :(得分:0)
使用SQL Server Compact时,只允许使用唯一值,包括单个NULL值。