问题标签 [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 投票
7 回答
1758 浏览

ruby-on-rails - 可以依赖数据库中的自动递增主键吗?

在我目前的 Rails 应用程序中,我通过按“ created_at”字段对模型进行排序来解决调度冲突。但是,我意识到,当从允许这样做的表单中插入多个模型时,所有created_at时间都是完全相同的!

这更像是一个最佳编程实践的问题:您的应用程序是否可以依赖数据库中的 ID 列来越来越大地递增,INSERT以获得它们的创建顺序?换句话说,我可以按 ID 列对从数据库中提取的一组行进行排序,并确保这是基于创建顺序的准确排序吗?这是我的应用程序中的一个好习惯吗?

0 投票
4 回答
3539 浏览

mysql - MySQL current_insert_id()?(不是 last_insert_id())

我正在插入一个带有 char 列的行,用于基于(除其他外)行的自动 ID 的哈希。

我知道我可以插入它,获取 insert_id,计算哈希值并更新它。

有谁知道在单个查询中执行此操作的方法?您在插入时需要行 insert_id。这是完全不可能的,还是有类似 current_insert_id()...

谢谢!

0 投票
2 回答
1454 浏览

mysql - 是否可以有一个允许重复的 AUTO_INCREMENT 列?

我有一个有AUTO_INCREMENT字段的表。目前,它也是一个 PRIMARY KEY。

但是,在某些情况下,我需要此AUTO_INCREMENT列来允许重复。换句话说 - 两个不同的行可以在AUTO_INCREMENT列内具有相同的值。这意味着有一个不是 PRIMARY KEY 的 AUTO_INCREMENT 字段。

这可能吗?

我猜不是,因为每当我尝试这样做时,都会收到此错误:

ERROR 1075 (42000) at line 130: Incorrect table definition; there can be only one auto column and it must be defined as a key

我喜欢使用 AUTO_INCREMENT 字段,因为它使我不必手动存储/递增数据库中其他地方的单独计数器。我可以插入表格并获取插入的值。但是,如果我不能有重复项,我似乎将无法使用单独的表来跟踪和手动增加该字段。

更新:作为一个快速澄清,我已经熟悉将 AUTO_INCREMENT 字段与另一个键分组,如此处所述。让我们假设这个解决方案由于数据库中的其他约束而无法工作。

0 投票
3 回答
5027 浏览

auto-increment - SQL Anywhere 自动增量重置

我有一个 SQL Anywhere 9 数据库,我想将我的一个列上的自动增量值重置为特定数字。

我想我需要 SQL-Anywhere 相当于:

ALTER TABLE foo AUTO_INCREMENT =100

0 投票
5 回答
37261 浏览

sql-server - 如何将主键设置为 AUTOINCREMENT

我在数据库中有表,主键是'ID',只是我想问一下我怎样才能使它成为 AUTOINCREMENT

我知道那是 essay Q,但我不知道我该怎么做。

谢谢

0 投票
3 回答
1864 浏览

sql - 根据另一个 ID 使用 auto_increment 创建一个 ID - 可能吗?

我想为具有多个项目的项目服务器制作一个小型票务系统。到目前为止,TicketID 将被全局计算,即有一个项目 A 和一个 TicketID 为 1 的工单和另一个项目 B 并且该项目的工单将获得 TicketID 2 - 如下所示:

但我认为根据 ProjectID 计算 TicketID 会更好,例如:

这里的表:

是否可以根据使用 SQL 的 ProjectID 使用 auto_increment 制作 TicketID?或者 SQL 没有办法,我必须用我的 PHP 代码手动设置 ID?

0 投票
2 回答
760 浏览

asp.net - 如何在 vb.net 2008 中将主键设置为 AUTOINCREMENT?

我在数据库中有表,主键是“TID”列,我想将其设置为 AUTOINCREMENT,但我不能,因为“身份规范”已关闭!

见这张图片: http ://www.rofof.com/img2/6xsbuy6.gif

我该怎么做?

谢谢!

0 投票
7 回答
34770 浏览

sql - 如何从 SQLServer SELECT 语句返回新的 IDENTITY 列值?

我正在插入带有自动递增键字段的 SQLServer 表。(我相信这在 SQLServer 中称为 IDENTITY 列。)

在 Oracle 中,我可以使用 RETURNING 关键字为我的 INSERT 语句提供一个结果集,例如 SELECT 查询,该查询将返回生成的值:

如何在 SQLServer 中完成此操作?

奖励:好的,到目前为止答案很好,但是如果可能的话,我如何将它放入一个语句中?:)

0 投票
1 回答
1148 浏览

mysql - 由于某种原因,MySQL 表增加了 10

由于某种原因,mysql 表中的 id 字段增加了 10(11、21、31)。这是表定义:

如果我在 SQL 中执行一个简单的插入语句,则下一个 ID 将是 41。

0 投票
1 回答
1705 浏览

python - SQLAlchemy中具有自定义逻辑的自动递增属性

我有一个简单的“发票”类,其中有一个“数字”属性,当用户保存发票时,该属性必须由应用程序分配。有一些限制:

1)应用程序是一个(瘦)客户端-服务器应用程序,所以无论分配数字都必须注意冲突
2)发票也有一个“版本”属性,所以我不能使用简单的 DBMS 级自动增量字段

我正在尝试使用每次保存发票时都会启动的自定义类型来构建它。每当使用 None 值调用 process_bind_param 时,它将调用某种单例来确定数量并避免冲突。这是一个体面的解决方案吗?无论如何,我遇到了问题.. 这是我的自定义类型:

我现在的问题是,当我保存 Invoice 并且 AutoIncrement 将“1”设置为其编号的值时,Invoice 实例不会使用新编号进行更新。这是预期的吗?我错过了什么吗?非常感谢您的宝贵时间!

(Python 2.6 上的 SQLA 0.5.3,使用 postgreSQL 8.3)

编辑: Michael Bayer 告诉我这种行为是意料之中的,因为 TypeDecorators 不处理默认值。