保证唯一性只能靠建唯一索引

257 阅读1分钟

在数据库里面,如果想保证某个字段的唯一性,一定要建唯一索引,而不能指望在插入或更新前的代码检测。
比如


IF NOT EXISTS(SELECT 1 FROM User WHERE Email=@Email)
{
INSERT …
}


1、    这种做法不能保证并发情况下一定正确;


2、    数据库忙的时候,可能会出现令人意外的结果。


这是很浅显的道理,可惜我要经过许多弯路之后才明白。并且历经千辛万苦才修改过来。\