[英]why is oracle sequence jumping by 2 when it is set to increment by 1?
所以這讓我感到困惑。.因此我在JPA代碼中獲得了以下語法:(我按照說明進行操作,語法正確)
@SequenceGenerator(name="oracle_gen", sequenceName="TEST_SEQ", allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="oracle_gen")
我在Oracle 10中得到一個名為“ TEST_SEQ”的序列,該序列設置為遞增1
它現在可以工作..但是當插入我的行時,ID列(將序列設置為該列)增加2 ..像17、19、21等。
當我確實從oracle的dual中選擇了test_seq.nextval時,當前顯示為22,但是我知道是否從Java應用程序中添加了另一行,它將是23。我不知道為什么在何處添加了另外1 。該序列已設置為NOCACHE(在Oracle中)我在做什么錯? 救命! :(
好吧..這太奇怪了..我剛剛意識到,每當執行select test_seq.nextval時,它都會增加我的價值? 我的數據庫上確實有一個觸發器。 那是什么原因造成的? 抱歉,我是Oracle / pl / sql的新手。
謝謝你的幫助。
您可能會濫用NEXTVAL
。 通過使用序列 (重點是我):
在SQL語句中使用
NEXTVAL
和CURRVAL
偽列引用了一個序列。 每個新序列號都是通過引用序列偽列NEXTVAL
,而當前序列號可以使用偽列CURRVAL
重復引用 。
問題是您的RDBMS還是您的應用程序代碼。 前者可以輕松檢查。
要在應用程序端進行檢查,您將需要檢查應用程序中使用此順序的所有位置。 也可以使用DBA_SOURCE視圖輕松檢查該視圖,該視圖具有與ALL_SOURCE視圖相同的列。 檢查此鏈接 。
祝好運
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.