唯一约束 - 这些列当前没有唯一值..?
问题描述:
唯一约束条件 - 这些列当前没有唯一值。唯一约束 - 这些列当前没有唯一值..?
我创建了3列的唯一约束;
我的代码完美,但一次 - 两个用户@同时输入相同的数据,并以某种方式保存在数据库中;该事件发生后
这的UniqueConstraint给我的错误 - 这些列当前没有唯一值
我如何检查用户输入这样的条目或我怎么能限制的ENTRY ???
答
我想你正在使用SQL Server,在这种情况下,如果已经定义了约束,以便在插入时检查约束。根据到SQL Server documentation,你描述不能发生的事情:
数据库引擎会自动 创建唯一索引来强制UNIQUE 约束的 唯一性要求。因此,如果尝试执行 来插入重复行,则 数据库引擎会返回错误 消息,指出违反了UNIQUE 约束条件,并且 不会将该行添加到表中。
即使插入发生(几乎)同时发生,请求也会在数据库中排队,以便其中一个请求在检测到约束被违反时会失败。
正如Rob P所说,看起来好像是在DB层之外创建约束。
答
您能否提供关于约束条件的更多细节以及如何执行它们?
(我以为)任何现代DBMS都应该能够同时处理并发/多个用户同时没有约束问题。我的猜测是您正在使用ADO.NET DataSet/DataTable并自己添加约束。
如果是这样的话,我认为最简单/最好的做法是将约束添加到数据库中。如果两个用户同时更新/保存,数据库将正确处理;一个会成功保存数据,另一个会收到错误。您可以优雅地处理应用程序中的错误。
你在哪里描述了你的约束?你正在使用哪个数据库? – davek 2011-05-08 17:34:59
使用MS SQl服务器2005并使用.net框架的UniqueContraint – pvaju896 2011-05-09 15:36:41
我已通过VB.Net编码给出了此约束 – pvaju896 2011-05-09 15:38:22