使用时间戳作为主键时避免主键约束冲突

使用时间戳作为主键时避免主键约束冲突

我有一个数据库表,其中主键被定义为时间戳。应用程序根据触发的特定事件向数据库插入记录,所使用的时间戳将是创建此实例的时间戳。由于该应用程序在多个服务器上运行,并且该事件同时在多个服务器上触发,因此在某些情况下,由于主键冲突,数据不会插入到数据库中。

为了避免这种情况,我可以做什么改变呢?我现在的想法是,

在执行数据库插入之前等待一个随机时间。

随机r=新随机();长时间= r.nextLong() % 1000;时间=时间<0?-time : time;//确保等待时间为正尝试{Thread.sleep(时间);} catch (InterruptedException e) {抛出新的CustomeException(e);}Table1DataAccess.getInstance().insert(新日期(),“一些描述”);//将数据插入有两个字段的表中。使主键成为复合键。这两种方法对我来说都不是很好的解决方案,有人能给我指明正确的方向吗?

我尝试插入数据的表有Date类型的时间戳列,我猜它的精度只有几秒。当我使用timestamp类型时,它提供了微秒的默认精度,并且它可以提供最大的纳秒。

相关推荐

[家电]拆解小狗手持无刷吸尘器D-535
BT365账户验证需要多久

[家电]拆解小狗手持无刷吸尘器D-535

09-17 👁️ 6649
盘点足坛十大95后新星,谁会是下一个梅罗?
招联金融1000额度能提额吗?用对方法就能提额
365体育手机版中国官方网站

招联金融1000额度能提额吗?用对方法就能提额

08-21 👁️ 642