问题标签 [unique-key]

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 投票
1 回答
720 浏览

mysql - 在mysql中回滚后重复唯一键错误

我有一张这样的桌子

假设它是空的,所以自动增量为 0。例如:

据我所知,回滚不会影响自动增量。因此,如果我插入一个新值,自动增量将为 2 而不是 1。但如果我再次尝试插入“Agatha Christie”,我会遇到以下问题:

这不是我所期望的。我期待这个:

怎么了?

0 投票
1 回答
704 浏览

mysql - 如何在mysql中删除外键上的唯一键?

我在mysql中有下表

现在我需要从 id 中删除唯一性(我只需要它不为 null 或只是一个索引)
我怎样才能将此索引更改为KEY idid而不是UNIQUE KEY idid

0 投票
2 回答
1681 浏览

mysql - MySQL唯一复合约束不起作用

我创建了一个这样的唯一索引:

但我仍然可以添加重复的项目,为什么这不起作用?

笔记:

表本身也有一些列在这里没有包含,而warehouse_id是外键,不过这些东西应该没关系吧?

谢谢!

@cularis:这是成功添加重复项的示例:

编辑:

根据需要添加更多信息:

0 投票
1 回答
483 浏览

oracle - ETL 到可操作的 oracle 数据库 - 由 jsp/spring/hibernate 应用程序使用

我需要将一些遗留数据加载到可操作的 oracle (11gR2) 数据库中。jsp/spring/hibernate (3.2.5.ga) 应用程序正在使用该数据库。序列用于在所有表中生成唯一键。序列定义如下:

数据加载/ETL 的想法是提出一个脚本,该脚本通过运行以最大序列值开始

在脚本生成过程的开始 - 并为需要填充的数据生成 SQL 插入语句。处理数据清理、业务规则等涉及一些逻辑,这些逻辑通过脚本应用,并且生成的 SQL 插入语句预计将在一批中运行,并且应该能够引入所有遗留数据。

假设最大序列值为 1000 - 脚本将其用作变量并根据需要进行增量,输出 SQL INSERTS 将如下所示:

我创建了一些模拟 SQL 来展示输出 INSERTS 的想法 - 插入操作中将涉及更多的表。每当我们需要从后端进行数据更改时,我们将使用 HIBERNATE_SEQUENCE.NEXTVAL 来获取下一个唯一键值。但由于 sql 生成脚本在断开模式下运行,它不使用 HIBERNATE_SEQUENCE.NEXTVAL,而是尝试增加一个局部变量。

我们对能够生成(和运行)这个脚本的假设是

  1. 将应用程序删除以进行维护
  2. 在运行脚本期间没有数据库活动,并从最大序列值开始。
  3. 生成 SQL
  4. 运行 SQL - 提交。

  5. 假设在脚本生成过程中,最大序列值从 1000 上升到 5000 - 在脚本运行并加载数据之后,需要删除/创建 HIBERNATE_SEQUENCE 以从 5001 开始。

  6. 恢复应用程序。

现在,出于我发布此内容的原因,如此详细...我需要您就此设计中的任何漏洞提出建议/意见,以及是否有任何我忽略的内容。

任何输入表示赞赏。

谢谢!

0 投票
7 回答
4741 浏览

iphone - 有没有一种程序化的方式来获取移动设备的唯一标识符?

我需要一种方法来了解每个用户的唯一性,无论是针对 iPhone、Android 还是 Windows Phone 设备。如果没有通用的方法,我想知道保存电话号码是否合法(即合法)。

有人有这方面的经验吗?

0 投票
5 回答
1038 浏览

apache-flex - Flex 4.5 - 唯一的计算机信息

我正在开发一个基于 flex 4.5 Web 的应用程序,我需要确保客户端是否选择了一定的安全级别,每个用户只能从授权计算机登录。

所以问题是我怎样才能得到一些独特的计算机信息?诸如硬盘序列号、CPU 规格、主板信息之类的任何事情,甚至登录到操作系统的用户都可以做到。

到目前为止,网络上的信息并没有给我太多希望,但我不得不问。提前致谢。

0 投票
1 回答
2367 浏览

random - 如何生成唯一的 64 位密钥

我想随机生成唯一的 64 位密钥(伪)来识别我们模型中的对象。我需要密钥在系统的所有用户中尽可能唯一(将任何 N 个密钥一起使用时发生冲突的可能性降到最低)。

现在通常的 GUID 是不可能的,因为我们的数据很便宜:)。因为我预计在同一上下文中需要使用超过 100 万个密钥,所以我认为 64 位就足够了(冲突概率约为 10e-7)。

作为旁注,我还需要一个方案将这些密钥的元组折叠/散列成一个 64 位密钥,该密钥也需要良好分布/唯一。

由于无论如何我都需要一个良好的(分布良好的)散列函数,是否可以将 GUID 对折(也许以某种方式考虑 GUID 中的固定位)?还是使用本地RNG更好?我将如何播种 RNG 以最大化跨空间/生成时间的独特性?我需要多强的RNG?

我并不是特别在寻找效率(在一定程度上),但我真的很想确保概率能够兑现他们的承诺!

0 投票
3 回答
760 浏览

mysql - 使用唯一键时重复数据

对于我的表,我在activity_id- actor_id-上定义了一个唯一索引end_date

那么,这些数据怎么会存在呢?

编辑:这是输出SHOW CREATE TABLE sg_activity_property

0 投票
4 回答
1079 浏览

sql - 由于重复插入失败后选择身份

假设我有一个带有主键 ID 和唯一键名称的 MS SQL Server 表。此外,为名称设置了 IGNORE_DUP_KEY。我要做的是插入一个名称然后获取它的ID,而不管操作执行是否成功。即如果名字不是重复的,取新的ID,如果是重复的,取已经存在的ID。

显然,如果我执行 INSERT Name 然后选择一个 IDENTITY,则在 Name 重复的情况下将无法正常工作(在这种情况下,诸如 SCOPE_IDENTITY() 之类的函数将返回 NULL)。但是,我相信应该有一种方法可以轻松实现这一点,因为 INSERT 应该已经找到了未成功插入名称的 ID。因此,此 ID 应该在 O(1) 时间内可用。

另外,请注意,由于性能问题,对服务器有两个单独的请求(插入和选择)不是我的选择。

0 投票
2 回答
413 浏览

vb.net - 摩托罗拉 MC55 唯一 ID

在摩托罗拉 MC55 中,我想获取扫描仪的工厂或唯一 ID 或序列号。如何在 vb.net 中编码?