doubaoxue5788 2016-06-02 13:57
浏览 1036

为什么oracle序列在设置为1时增加2?

so this is perplexing me.. so I got this syntax in my JPA code: (which I follow instructions and the syntax is correct)

 @SequenceGenerator(name="oracle_gen", sequenceName="TEST_SEQ", allocationSize=1)
 @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="oracle_gen")

where I got a sequence in my Oracle 10 named "TEST_SEQ" which is set to increment by 1

It works now.. but when it inserts my row, the ID column (where the sequence is set to) increase by 2.. like 17, 19, 21, etc..

When I did select test_seq.nextval from dual from oracle, it currently say 22 but I know if I add another row from my java application, it'll be 23.. I can't figure out why and where it is adding another 1. The sequence is already set to NOCACHE (in Oracle).. what am I doing wrong? Help! :(

Ok.. this is so odd.. I just realized whenever I do a select test_seq.nextval, it keep increasing my value?! I do have a trigger on the database. Is that what's causing it? sorry, I'm new to Oracle/pl/sql.

thanks for any help.

  • 写回答

2条回答 默认 最新

  • dongmao9217 2016-06-02 14:03
    关注

    You're possibly misusing NEXTVAL. From Using Sequences (emphasis mine):

    A sequence is referenced in SQL statements with the NEXTVAL and CURRVAL pseudocolumns; each new sequence number is generated by a reference to the sequence pseudocolumn NEXTVAL, while the current sequence number can be repeatedly referenced using the pseudo-column CURRVAL.

    评论

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度