c# - .Net 到 SQL,比较唯一值的最佳方式

标签 c# .net sql

我有一个导入过程,我在.Net 中获取一个 CSV 文件,并将其写入数据库中的两个用户表。这是一个相当复杂的过程,一次需要几分钟才能处理大约 500 个用户。 在这个过程中,我需要生成一个字符串,随机字符串,对于每个用户来说都是唯一的,因为它使他能够访问一些促销事件。我无法使用 GUID,因为它必须是用户在启动屏幕中输入的简单字符串。 我需要知道的是,检查每个新生成的 key 是否不重复数千个现有用户中已创建的 key 的最佳方法是什么。 我不想在每个插入的行中添加新查询,询问字符串是否已经存在。

谢谢,我希望我说得足够清楚

最佳答案

与可能的唯一键的数量相比,有多少用户?

如果可能的键比用户的数量多,那么我只需在键列上添加一个唯一约束,并在违反约束时生成一个新键。

如果您可能会因上述技术而发生很多冲突,那么您可以选择以下几个选项:

  • 预先生成一组唯一键,将它们存储在表中的某个位置,并在需要时获取一个。
  • 为键添加一些唯一性:用户是否有可以合并的唯一 ID?

关于c# - .Net 到 SQL,比较唯一值的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4747120/

相关文章:

javascript - 从 URL 中检索查询字符串

c# - WPF CollectionViewSource 的组属性

java - 在每次运行时为 PhantomJs 使用相同的 session

c# - 为什么在 int.parse ("1"之后不允许使用后缀增量 (++) 运算符)?

.net - 在 .NET 中反序列化期间如何指定 XML 序列化属性以支持命名空间前缀?

mysql - 用于替换 MySQL 查询中的 GREATEST() 的标准 SQL

mysql - 使用 slice 执行 sql 准备语句

c# - C# 中的 SQL 子查询

mysql - 如何在带有 limit 关键字的 sql 查询中使用多个 order by?

c# - .NET Core 中 Assembly.GetEntryAssembly() 的等价物是什么?