关于ORCL序列问题

chjwin 2009-08-09 07:07:36
create sequence seq_chj start with 1 increment by 5 maxvalue 50;
用这个语句创建序列后,再把序列的增值改成2(alter sequence seq_chj increment by 2;)
为什么执行一下seq_chj.nextval 后的当前结果是 -2 呢? 用这个语句添加执行的:insert into chj values(seq_chj.nextval); 然后select *from chj; 查看下这个表,里边有一条数据(因为只插入了一次) 结果是 -2
为什么会是这个结果?按说应该开始是1,执行nextval后应该是3才对啊!如果把创建序列的增值5改成4,那执行修改后添加的结果是-1,为什么开始值会减去增值呢?
希望各位高手朋友帮我解决这个问题!谢谢大家!
...全文
81 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
chjwin 2009-08-14
  • 打赏
  • 举报
回复
恩,谢谢,明白了!这几天比较忙,一直没空看,今天才看到,呵呵!谢谢!
vber1010 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jdsnhan 的回复:]
因为第一次取的是初始值,以后访问的才是INCREMENT 的值。

初始状态,你设置了start with=1,在没有访问的情况下,又更改了INCREMENT 的值,系统会把两次INCREMENT 的差值计算到初始值中。
[/Quote]
不怎么明白啊。。。。。。。
wh62592855 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jdsnhan 的回复:]
因为第一次取的是初始值,以后访问的才是INCREMENT 的值。

初始状态,你设置了start with=1,在没有访问的情况下,又更改了INCREMENT 的值,系统会把两次INCREMENT 的差值计算到初始值中。
[/Quote]
学习了
小灰狼W 2009-08-10
  • 打赏
  • 举报
回复
学习``
jdsnhan 2009-08-09
  • 打赏
  • 举报
回复
因为第一次取的是初始值,以后访问的才是INCREMENT 的值。

初始状态,你设置了start with=1,在没有访问的情况下,又更改了INCREMENT 的值,系统会把两次INCREMENT 的差值计算到初始值中。
vber1010 2009-08-09
  • 打赏
  • 举报
回复
学习

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧