create table tttt (
a int null,
b int null
)
gocreate UNIQUE index id_tttt on tttt(a,b)
goinsert tttt values (1,null)
goinsert tttt values (1,null) --出错
goinsert tttt values (null,null)
goinsert tttt values (null,null) --出错
go
a int null,
b int null
)
gocreate UNIQUE index id_tttt on tttt(a,b)
goinsert tttt values (1,null)
goinsert tttt values (1,null) --出错
goinsert tttt values (null,null)
goinsert tttt values (null,null) --出错
go
肯定是不能了,Unique index只允许有1行是NULL
这个说法有点问题,多列组合的时候有问题,至少让人误解看上面测试就知道了,全为null的只能一条可以这么理解:Unique index把null当作一个值,其他得就和它的唯一的定义一样了,当作null=null,所以(1,null)和(1,null)重复,(null,null)和(null,null)重复