问题标签 [unique]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
2920 浏览

c++ - 12 位唯一 ID - 代码可靠性

我想要一个在一天(24 小时)内保持唯一的号码。以下是我想出的代码;我想知道它的谬误/可能的风险;“我相信”这保证了至少一天的 12 位唯一编号。

逻辑是获取当前日期/时间(hhmmssmmm)并连接查询性能计数器结果的前四个字节。

以下是我得到的输出:

唯一:[125907 462224] 唯一:[125907 462225] 唯一:[125907 462226] 唯一:[125907 462227] 唯一:[125907 462228] 唯一:[125907 462230] 唯一:[125907 4627431] 唯一:[23] 唯一:[12590] [125907 462233] 唯一:[125907 462234] 唯一:[125907 462235] 唯一:[125907 462237] 唯一:[125907 462238] 唯一:[125907 462239] 唯一:[125907 462240] 唯一:[1259125] 唯一:[1259125] 462243] 唯一:[125907 462244] 唯一:[125907 462245] 唯一:[125907 462246] 唯一:[125907 462247] 唯一:[125907 462248] 唯一:[125907 462249] 唯一:[1225907 460272562]唯一:[125907 462253] 唯一:[125907 462254] 唯一:[125907 462255] 唯一:[125907 462256] 唯一:[125907 462257] 唯一:[125907 462258] 毫秒改变,46 唯一:[125907 62027261] 622262] 唯一:[125907 622263] 唯一:[125907 622264] 唯一:[125907 622265] 唯一:[125907 622267] 唯一:[125907 622268] 唯一:[125907 622269] 唯一:[125907 622270] 唯一:[125907 622271] 唯一:[125907 622273] 唯一:[125907 622274] 唯一:[1259125]6275] 622276] 唯一:[125907 622277] 唯一:[125907 622278] 唯一:[125907 622279] 唯一:[125907 622281] 唯一:[125907 622282] 唯一:[125907 622283] 唯一:[1225907 62027264]独特:[125907 622286] 独特:[125907 622288] 独特:[125907 622289] 独特:[125907 622290] 独特:[125907 622291] 独特:[125907 622292] 独特:[125907 6227293] 独特:[12590] 独特:[12590] [125907 622296] 唯一:[125907 622297] 唯一:[125907 622298] 唯一:[125907 622299] 唯一:[125907 622300] 唯一:[125907 622301] 唯一:[125907 622302] 唯一:[1259125] 唯一:[125912] 622305] 唯一:[125907 622306] 毫秒更改,62 唯一:[125907 782308] 唯一:[125907 782310] 唯一:[125907 782311] 唯一:[125907 782312] 唯一:[125907 782313] 唯一:[125907 782314] 唯一:[125907 782316] 唯一:[125907 782317] 唯一:[1259125] 唯一:[125912] 782319]毫秒改变,125个独特:[1259071402495]唯一:[1259071402497]唯一:[1259071402498]唯一:[1259071402499]独特:[1259071402500]独特:[1259071402502]独特:[1259071402503]独特:[1259071402504]独特:[1259071402504 ] 唯一:[1259071402507][1259071402504] 唯一:[1259071402505] 唯一:[1259071402507][1259071402504] 唯一:[1259071402505] 唯一:[1259071402507]

现在我正在考虑将生成的 ID 保存在一个列表中,并将新生成的 ID 与列表中的现有 ID 进行比较。如果它已经存在于列表中,那么我当然可以跳过这个数字并生成另一个,但当然很明显这个逻辑会失败。

非常感谢您的意见/建议/更新/等。

谢谢JT。

0 投票
2 回答
4052 浏览

sql-server - SQL Server 中的 IGNORE_DUP_KEY 选项

我在 MSDN 和 Google 中进行了相当多的搜索,但看起来 IGNORE_DUP_KEY 选项的描述非常有限。

我的困惑,

  1. IGNORE_DUP_KEY 选项是列的选项吗?一张桌子?几列?索引(使索引唯一)?

  2. 如果将 IGNORE_DUP_KEY 设置为 Yes,当插入一批具有重复键的记录(使用批量插入 WriteToServer ADO.Net 函数)时(例如,我插入一些数据库中已经存在的值),SQL Server 不会抛出错误。批处理作业将成功完成,但不会插入重复的行。将插入所有其他行,SQL Server 将其视为作业成功。我的理解正确吗?

提前谢谢,乔治

0 投票
5 回答
2439 浏览

algorithm - 无冲突自动生成文件名

我正在编写一个“文件共享主机”,我想在上传到唯一名称时重命名所有文件,并以某种方式跟踪数据库中的名称。由于我不想要两个或多个具有相同名称的文件(这肯定是不可能的),我正在寻找一种基于密钥或其他东西为我生成随机名称的算法。

此外,我不想生成名称并搜索数据库以查看文件是否已存在。我想确保 100% 或 99% 的应用程序之前从未创建过生成的文件名。

知道如何编写这样的应用程序吗?

0 投票
5 回答
9651 浏览

sql - 具有唯一列值的 Sql 查询

我的目标是编写查询。我有三个表,A、B 和 C。这些表的编写方式是 A.bID = B.bID,B.cID = C.cID。这基本上允许我编写一个查询,将记录从 a 链接到 b,并将 b 记录链接到 c 的记录。到目前为止一切顺利,简单的查询。

我的问题是......查询中包含的列之一(我们称之为C.col3)必须具有唯一值;该列的值在查询结果中只能出现一次,而其他表中的其他列则没有这个要求。

有人可以帮我写这个查询吗?

谢谢...

更新1:

这是表格布局(对不起,我必须使用通用名称)

表 A
aID、bID、aCol1、aCol2、aCol3 ... aCol10

表 B
出价、cID、bCol1、bCol2、bCol3 ... bCol10

表 C
cID, cCol1, cCol2, col3 , cCol4 ... cCol10

如果没有 col3 中的唯一值约束,我会这样编写查询:

...但当然这并不能确保 C.col3 中的值是唯一的。

更新 2: 更多信息...
表 A 和表 B 具有一对多关系;A是“标题”,B是“项目”。
表 B 和表 C 具有一对一的关系。

这些表是缓存机制的一部分,所以很多数据看起来很相似,但在某些列中仍然不同。

由于 A 是表头,大部分重复值会在 A 中找到。

我首先需要按 A.aID 对行进行排序,但之后我只需要返回第一行,而 C.col3 的值不需要出现在该列的前一行。

这是否使事情更清楚了,还是我仍然没有任何意义?:)

最终更新:

我选择了 Bartosz Klimek 的答案,因为它最接近我的需要;我只需要修改中间的嵌套连接子句。

感谢大家的帮助!

0 投票
1 回答
264 浏览

algorithm - 如何对 32 位数字进行排序以查找唯一条目?

有一个“文件”数据集 - 文件名,后面是 32 位数字 - 类似于文件的哈希值。

我将如何获得唯一文件,因此 s2 不是任何其他 s2 的前缀 - 这意味着该数字是唯一的。如果有两个相同的 s2,如果它们不是任何其他 s2 的前缀,它们都是唯一的。

我正在寻找一个快速的解决方案。我可以想出解决方案来比较每个字符串,但这太耗时且无效。另一种选择是以某种方式将 MySQL 引擎用于表,但我不确定如何。你能帮我吗?

0 投票
3 回答
767 浏览

asp.net - Asp.Net SQL 中的唯一记录

我之前问过这个问题,但答案不是我想要的。

我在没有使用代码的情况下在 Asp.net 中创建了一个表。它包含两列。

YourUserId 和 FriendUserId

这是多对多的关系。

这是我想要的:

可以有多个记录以您的名字作为 UserId,也可以有多个记录 FriendUserId 相同...但不能有多个记录两者都相同。例如:

戴夫:格雷格

戴夫:克里斯

格雷格:克里斯

克里斯:格雷格

很好

戴夫:格雷格

戴夫:格雷格

不好。

我右键单击表格并选择索引/键。然后,我将两列都放在列部分并选择使其唯一。我认为这会使它们作为一个整体独一无二,但单独不是独一无二的。

如果您转到数据集,它会在两列旁边显示键,并表示检查两列时存在约束。

有没有一种方法可以确保您没有将记录的重复副本插入到表中而没有单个列是唯一的?

我尝试用我的 sql insert 语句来控制它,但没有奏效。这是我尝试过的。

在不存在的情况下插入 [FriendRequests] ([UserId], [FriendUserId]) 值 ('"+UserId+"', '"+PossibleFriend+"') (SELECT [UserId], [FriendUserId] FROM [FriendRequests])

由于某种原因,这不起作用。感谢您的帮助!

0 投票
6 回答
10033 浏览

c# - 有机会使用 Linq (C#) 获得唯一记录吗?

我有一个list<list<string>>

inlist[x][0]是我想从中选择唯一记录的记录,因此此类记录不会出现在任何其他记录中list[x][0],当我选择它时,我希望选择整行list[x]。我在 Linq 中没有找到合适的例子,请帮助:(

编辑

当 Jon Skeet 要求我澄清时,我不能否认 ;-)

包含字符串表列表。每个字符串“table”都包含几个键list[x][several_items],我想从 list-> 中获取唯一记录,这意味着该“table”中的第一个项目。

因此:

-> 唯一意味着我可以将行派生item[3] and item[4]为唯一的。因为数字/字符串的第一次出现很重要。

如果有 2 个或更多记录/行 (item[x] of which first item (item[x][0])在列表中存在多次,则它不是唯一的。

每个列表的第一个元素对于确定唯一性很重要。如果有人可以帮助找到一种方法来找到非唯一的,也许会更容易 -> 所以从上面的例子中,我只会得到 item[0] 和 item[1]

0 投票
6 回答
8739 浏览

python - Django模型-事后如何通过PK过滤掉重复值?

我通过进行几个查询来构建 Django 模型对象的列表。然后我想删除任何重复项,(所有这些对象的类型都与 auto_increment int PK 相同),但我不能使用 set() 因为它们不可散列。

有没有一种快速简便的方法来做到这一点?我正在考虑使用 dict 而不是以 id 为键的列表。

0 投票
11 回答
133399 浏览

c# - .NET 唯一对象标识符

有没有办法获取实例的唯一标识符?

GetHashCode()对于指向同一个实例的两个引用是相同的。但是,两个不同的实例可以(很容易)获得相同的哈希码:

我正在编写一个调试插件,我需要获取某种 ID 用于在程序运行期间唯一的引用。

我已经设法获得了实例的内部地址,它是唯一的,直到垃圾收集器 (GC) 压缩堆(= 移动对象 = 更改地址)。

堆栈溢出问题Object.GetHashCode() 的默认实现可能是相关的。

这些对象不受我的控制,因为我正在使用调试器 API 访问正在调试的程序中的对象。如果我可以控制这些对象,那么添加我自己的唯一标识符将是微不足道的。

我想要用于构建哈希表 ID -> 对象的唯一 ID,以便能够查找已经看到的对象。现在我这样解决了:

0 投票
6 回答
9355 浏览

sql-server - 在 SQL Server 中将索引声明为唯一

如果我知道索引将具有唯一值,那么如果我声明它,它将如何影响插入或选择的性能。

如果优化器知道索引是唯一的,那将如何影响查询计划?

我知道指定唯一性可以保持完整性,但暂时搁置讨论,性能后果是什么。