2014-09-03 32 views
0

嗨,我有一种情况,像我通过在java代码中生成一个唯一值插入数据库连同主键 。这个独特的ID有时间戳例如:'BatchID16Jul1411111111'。在那里它延长到毫秒。现在如果两个用户同时击中相同的唯一id,则生成。如何避免重复的唯一标识与时间戳

有没有什么办法让这个时代的夯实独特,即使它被同时调用。

是否可以通过从数据库获取自动增量编号。

任何人都可以建议我解决这种情况。

在此先感谢

马赫什

+0

你为什么决定使用时间戳作为唯一ID而不是GUID? – apomene 2014-09-03 13:27:28

+0

为什么不能在自动增量中使用主键? – 2014-09-03 13:28:00

+0

您是否可以使用由当前主键组成的复合主键和任何时间戳生成?这假设您的主键保证是唯一的。 – Bruno 2014-09-03 13:30:48

回答

0

是的,它有可能获得从数据库中自动递增的数字。确切的语法取决于数据库。这些典型地使用三种方法之一:

  • auto-increment声明在create table声明;
  • identity声明create table声明;或者,
  • 作为默认值分配给主键列的序列。

但是请注意,自动递增的数字没有任何意义。所以,你需要一个单独的列'BatchId'和日期时间。