【发布时间】:2013-08-27 00:14:26
【问题描述】:
我们希望在其他非mysql相关进程成功完成之前从mySQL获取一个自增ID而不实际存储它,这样如果发生异常或应用程序崩溃,则不会存储该条目。我们需要使用 ID 作为其他进程的键。本质上,我们希望“保留”自动增量并将行插入 mySQL 作为最后一步。在我们知道整个过程已成功完成之前,我们不想插入任何行。
是否可以在 mySQL 中进行这种自动增量保留?
注意:我知道 SQL 事务。但是我们的进程包含需要在数据库之外发生的非 SQL 内容。这些过程可能需要几分钟到几个小时。但是我们不希望任何其他进程使用相同的自动增量 ID。这就是为什么我们想要一个“保留”一个自动增量 ID,而不需要真正将任何数据插入数据库。 -
【问题讨论】:
-
你能提供更多细节吗?大意是:(1)一个过程开始。 (2) 数据库发生了一些事情。 (3) 其他事情发生了……等等。
-
您可能无法使用自动增量。如果您将当前 id 计数器存储在其他地方的小表中,那么当您的外部进程开始时,它可以获取当前 id 并增加它。如果发生崩溃,可能会跳过一个 id,但不会重复。
-
@AldenW。请参阅比尔卡尔文的回复。您认为这是一个好方法吗?
标签: mysql sql transactions auto-increment