问题标签 [primary-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.
mysql - 数据库中已删除记录的数字主键是否会被重用于未来的新记录?
例如,如果我有一个自动编号的字段,我会添加新记录而不指定此字段,并让数据库引擎为我选择它。
那么,它会选择删除记录的编号吗?如果是,什么时候?
// SQL 服务器,MySQL。//
database - 当数据库引擎用完用于主键的数字时会发生什么?
由于数据库不重用已删除记录的数量,因此可能会用完数字,特别是如果您为此列选择的不是真正的大整数类型。
如果情况不好,会发生什么以及如何预防?
// SQL 服务器,MySQL //
sql-server - 不使用自动递增数字作为主键的原因
我目前正在研究其他人的数据库,其中主键是通过包含表名列表和最后使用的主键的查找表生成的。存储过程会增加该值并检查它的唯一性,然后再将其返回给调用“插入”SP。
使用这样的方法(或仅生成 GUID)而不是仅使用身份/自动编号有什么好处?
我不是在谈论实际上“意味着”诸如 ISBN 或产品代码之类的主键,只是唯一标识符。
谢谢。
sql - 更改没有主键的表中的每条记录?
我在数据库中有一个以文本形式表示日期的表(即“2008-11-09”),我想用 UNIX 时间戳替换它们。但是,我不认为 MySQL 能够自己进行转换,所以我想编写一个小脚本来进行转换。我能想到的方法包括获取表中的所有记录,遍历它们,并更新数据库记录。但是,由于没有主键,我无法轻松获得需要更新的确切记录。
有没有办法让 MySQL 在 SELECT 期间为记录分配临时 ID,以便我在执行 UPDATE 时参考它们?
database - 什么是 Hi/Lo 算法?
什么是 Hi/Lo 算法?
我在NHibernate文档中找到了这一点(这是生成唯一密钥的一种方法,第 5.1.4.2 节),但我还没有找到关于它如何工作的很好的解释。
我知道 Nhibernate 处理它,我不需要知道里面,但我只是好奇。
sql - numeric(38,0) 作为主键列;好,坏,谁在乎?
在我当前的项目中,我遇到了我们的主数据库脚本。仔细看一下,我注意到我们所有的原始主键的数据类型都是numeric(38,0) 我们目前正在运行 SQL Server 2005 作为我们的主要数据库平台。
对于一点上下文,我们支持 Oracle 和 SQL Server 作为我们的后端。在 Oracle 中,我们的主键的数据类型为number(38,0)。
有人知道这种实施可能产生的副作用和性能影响吗?我一直提倡并实现int或bigint作为主键,并且很想知道 numeric(38,0) 是否是更好的选择。
performance - Number VS Varchar(2) 主键
我现在到了我需要设计我的数据库(Oracle)的项目的这一点。通常对于状态和国家表,我不使用数字主键,例如
这些表是静态的,不会通过应用程序更新,并且预计将来不会更改,因此在将这些值用作外键的表中不会出现更新问题。
应用程序的主表将使用状态和国家(不止一次,例如来源国、目的地国),预计每年将增加 600000 行
所以我的问题是,在查询 3 个表的连接时,这些 VARCHAR(2) 键是否会对性能产生影响。第一个会比第二个慢很多吗?
澄清:
状态不是二进制的(表名旁边的“max 6”)。这些值可能是:
我们需要向用户显示解码后的值,所以我们需要名称。
mysql - INT 和 VARCHAR 主键之间是否存在真正的性能差异?
在 MySQL 中使用 INT 与 VARCHAR 作为主键之间是否存在可测量的性能差异?我想使用 VARCHAR 作为参考列表的主键(想想美国各州、国家/地区代码),并且同事不会将 INT AUTO_INCREMENT 作为所有表的主键。
我的论点,正如这里详述的那样,是 INT 和 VARCHAR 之间的性能差异可以忽略不计,因为每个 INT 外键引用都需要一个 JOIN 来理解引用,一个 VARCHAR 键将直接呈现信息。
那么,是否有人对这个特定的用例以及与之相关的性能问题有经验?
primary-key - 现在我已将主键转换为 GUID,如何修复性能?
我使用 TopLink 作为我的 ORM 和 MySQL 作为数据库。
我将我的自动增量主键换成我的一张表的 GUID(好吧,不完全是:我实际上使用的是随机的 64 位整数,但这足以满足我的需要)。
无论如何,现在甚至不使用密钥的查询都需要更长的时间。
我能做些什么?
c# - .net 数据集主键 - 强制唯一性?
我有一个带有几个数据表的小数据集。我从各种数据库加载数据表,并读取了一个配置文件,以确定我想在给定数据表上强制执行的主键。如果配置不包含正确的(非唯一)主键,那么在将主键应用于数据表时如何捕获此事件?目前看来它允许我应用主键,即使它不是唯一的......
有人指出我缺少什么吗?谢谢