问题标签 [auto-increment]

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 投票
3 回答
5215 浏览

mysql - 帮助在 mysql 中创建自定义自动增量函数

我想创建一个自动增量函数,允许我在多个表的指定列中保持唯一性。

我知道这在 mysql 的标准函数下不受支持,但似乎可以手动完成。有人能指出我正确的方向吗?

谢谢

0 投票
4 回答
9751 浏览

c# - 如何更新 DataTable 中的所有自动增量列?

我有一个带有“Id”列的 DataTable,它是我们 SQL Server 2005 数据库中的一个标识列。此列的 AutoIncrement 属性设置为 true。我没有用数据库中的数据填充表,因为我只将它用于插入,所以它从 1 开始分配虚假 ID。

但是在我调用 tableAdapter.Update() 之后,我希望在该列中有由数据库分配的 REAL Id。

出于某种原因,只有第一行得到更新,其余的都没有。该表使用级联 DataRelation(分层结构)引用自身,并且对第一行的引用也会更新。

请告诉我如何相应地更新所有 ID。

提前致谢!

插入语句:

这里是组件表的架构:

请注意,Id 列的名称是“Id”,“ComponentId”是 FK 引用列。

0 投票
3 回答
3290 浏览

sql-server-2005 - SET IDENTITY_INSERT 从 SQL Server 2000 到 2005 的行为有何不同?

我有一个应用程序(当前)需要使用 SQL Server 2000 和 SQL Server 2005 提供的数据库。

我正在尝试以编程方式将数据库从一台服务器移动到另一台服务器。我使用的所有表都有一个自动递增的主键。由于这些自动增量键在其他表中用作外键,因此我复制表的攻击计划是暂时关闭目标表上的自动增量,逐字插入记录(使用原始主键),然后打开自动- 重新增加。

如果我理解正确,我可以通过执行一次“打开/关闭自动增量”一个表

我的实现是在 VB 2005 中,使用 System.Data.SqlClient。

为简洁起见,我将只显示与 SQL 查询的构造相关的代码行。

要创建表:

要打开或关闭 IDENTITY_INSERT:

正常插入新记录,不指定主键:

要插入具有显式主键的新记录:

所以,我的计划是调用打开 IDENTITY_INSERT 的代码,添加带有显式主键的记录,然后关闭 IDENTITY_INSERT。

当我与 SQL Server 2000 交谈时,此方法似乎可以正常工作,但是当我尝试针对 SQL Server 2005 使用完全相同的代码时遇到了异常:

有什么提示吗?一如既往地提前感谢。

0 投票
4 回答
2351 浏览

java - 未提交的数据库事务和自增列

我今天遇到了一些奇怪的行为,想知道这是预期的还是标准的。我们正在对 MySQL5 使用 Hibernate。在编码过程中,我忘记关闭交易,我想其他人可以联系起来。

当我最终关闭事务、运行代码并检查表时,我注意到以下内容。我一直错误地运行我的代码而没有关闭事务,因此没有导致插入实际的行,但是增加了自动增量代理主键值,所以我有一个间隙(即没有 id 字段值的行751 至 762)。

这是预期的还是标准的行为?它可能因数据库而异吗?和/或 Hibernate 自己的事务抽象是否对此有一些可能的影响?

0 投票
5 回答
4418 浏览

c# - C#/SQL 获取自动递增的字段值

我有一个带有自动递增主键的表。在我的代码中,我试图在执行每个“插入”查询时接收新的自动增量值。有没有办法以编程方式做到这一点?

谢谢。

UPD:假设我有一张表:TABLE User (userID INT NOT NULL AUTO_INCREMENT, name VARCHAR(25) NOT NULL, email VARCHAR(50) NOT NULL, UNIQUE (userID));

当我向该表中插入新值(姓名和电子邮件)时,我希望自动接收新生成的用户 ID。理想情况下,我正在寻找使用单个事务且无需存储过程的任何方法。

0 投票
4 回答
1705 浏览

mysql - 在没有 WHERE 的情况下删除后 MySQL 自动递增值

跑步后发现,

我的 ID(自动递增)值变得很奇怪

按照这个顺序,当我做一个时,

我知道认证指南说,当使用 DELETE without WHERE 清空表时,ID 可能会或可能不会被重置,但是是什么导致 ID 序列如此奇怪?我很确定这是插入行的顺序。最初在删除之前,我在表中有 6 行,所以 7、8、9 似乎可以理解。

0 投票
2 回答
43 浏览

database - 多个数据库/服务器信息的 ID

我正在从事一个项目,我希望从一开始就尽可能地灵活和可扩展。我担心的一个问题是 Joshua Schacter 在Founders at Work中描述得最好的一个问题,他指出这是一个他希望他能提前计划好的细节。

扩展到一台机器、一个数据库是非常具有挑战性的,即使是复制也是如此。那里的工具并不完全正确。

例如,当您将东西添加到表中并对其编号时,这意味着您不能让第二台机器也添加到它们中,因为数字会发生冲突。所以你会怎么做?你必须想出一些完全不同的方法来做到这一点。

您是否有一个分发数字集的中央服务器,或者您想出一些不是数字的东西?您是否使用随机数并希望它们永远不会发生冲突?不管是什么,自动分配的 ID 都不会飞。

这里有人遇到过这个问题吗?有什么方法可以超越自动递增的 ID,或者有没有办法让它们与多个服务器一起扩展?

0 投票
4 回答
6699 浏览

php - 在使用准备好的语句执行插入查询后获取自动增量 ID

如果我使用带有 php 和 mysqli * 函数的存储过程执行插入查询_,有没有办法检索自动增量 id 字段的值?
mysqli->insert_id似乎不起作用。

0 投票
3 回答
11588 浏览

ruby-on-rails - 我可以创建一个 ID 从 0 而不是 1 自动递增的 Rails 模型吗?

我可以创建一个 ID 从 0 而不是 1 自动递增的 Rails 模型吗?如何?有什么陷阱吗?我在这里检查过,似乎我不能:

http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#M001911

如果,看起来,我不能,有什么理由我不能或不应该手动为这个类的第一个实例分配一个 ID 0?如果我这样做了,Rails 会自动为下一个创建的实例分配一个 ID 1 吗?

0 投票
1 回答
301 浏览

subsonic - SubSonic PrimaryKey 不自动递增

当前版本的 SubSonic 是否支持非自动增量的 PrimaryKey (Int)?如何?

PS:如果我不使用 SimpleRepository() 我可以使用分配的 Id 保存新记录,所以我或多或少可以继续,thz。