【发布时间】:2015-09-21 07:27:19
【问题描述】:
我一直在寻找生成唯一 ID 的解决方案,但找不到符合我要求的任何内容。问题是:
我有一个数据库表“事务”,其中包含各种“供应商”执行的所有事务。因此,transactionId 对于特定供应商是唯一的。到目前为止,我曾经在 java 中使用随机字母数字 API 生成 transactionId 以获得唯一值。到目前为止很好。现在,我们从供应商那里得到一个要求,从 1 到 999999 生成 id,在达到上限后,我们需要将其重置为 1。对于这个逻辑,我需要一个特定于该供应商的事务 id 的自动增量。我不能利用数据库自动增量,因为它不在整个列上。
我现在拥有的一个解决方案是 - 在该表插入函数上添加一个触发器,并通过自动递增该特定供应商来更新记录的事务 ID 值。
我对这个解决方案并不满意,并通过 java 代码寻找任何其他想法,这可能会使它更容易并且不会影响性能(例如:如使用同步)。此特定逻辑适用于多个用户将同时执行事务的 Web 应用程序。任何建议都会有帮助。
提前致谢。
【问题讨论】:
-
你试过了吗? sqlite.org/autoinc.html
-
@Proxytype - 如果你打算通过 ROWID,它没有多大帮助。一旦达到上限,我需要重置该值。如果我遗漏了什么,请告诉我。谢谢
标签: java mysql auto-increment uniqueidentifier