小编Wat*_*nki的帖子

有一种方法可以让主键 id 没有任何间隙

我正在使用 Java Spring 和 Oracle DB 创建一个应用程序。

在应用程序中,我想生成一个唯一且有序且没有间隙的主键值:1,2,3,4,5而不是1,2,5,7,8,9.

我曾一度用于max(id) + 1获取 id 的最大值以及下一个/当前事务的 id。但是我知道在多个用户或多个会话并发的情况下它并不完美。

我尝试过使用序列,但即使使用标签,ORDER它仍然可能会产生间隙,从而可能导致事务失败。

REATE SEQUENCE num_seq 
START WITH 1 
INCREMENT BY 1 
ORDER NOCACHE NOCYCLE;
Run Code Online (Sandbox Code Playgroud)

我需要有无间隙的值作为要求,但是我不确定在多个用户/多个会话的情况下如何可能。

sql database oracle primary-key sequential

0
推荐指数
1
解决办法
315
查看次数

标签 统计

database ×1

oracle ×1

primary-key ×1

sequential ×1

sql ×1