是否可以在该列上不使用 UNIQUE 约束(不想深入了解避免这种情况的原因)来确保该列不包含重复值?我特别考虑了竞争条件。
为了简单起见,我们假设相关列的类型为 nvarchar(50)
(该类型重要吗?)
最佳答案
可以通过插入之前的触发器、条件If Not Exists(...
)来实现。但实际上UNIQUE CONSTRAINT
是最快的。
另一个选项是在该列上创建唯一索引,这应该比触发器和条件更快。
如果您不想向现有表添加唯一约束,则可以使用此字段 nvarchar (50)
创建其他表并对其进行唯一约束。并在事务中插入主表之前(在插入语句或触发器中)插入此字段的值到这个新表中。
关于sql-server - 在没有唯一约束的情况下确保不重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31721276/