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

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


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


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


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


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

原文地址:https://www.cnblogs.com/leftfist/p/4258193.html