创建序列
create sequence a
increament by 1
start with 1
maxvalue 100
nocycle
cache 10;
如果往空表中直接插入数据,取a.nextval为id的话,查询结果id会从2开始!如果不是从空表插入数据就会从1开始!这是什么原因??请指教
例如:
create table stu(
id number,
name varchar2(10)
);
直接往里面插入数据:insert into stu values(a.nextval,'link');
id会从2开始(注意这是从空表中插入了数据)
要是原来的表中插入了一条数据,id则从1开始的。(在这之前,我把表和序列都重建了)
insert into stu values(12,'d');
insert into stu values(a.nextval,'link');
oracle关于序列的nextval取值
- 写回答
- 好问题 提建议
- 追加酬金
- 关注问题
微信扫一扫
分享- 邀请回答
3条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
二三三 2016-05-09 13:37最佳回答 专家已采纳nextval这个函数是序列里去下一个值的,你设置的从1开始,如果你用了nextval,生成的就是下一个产生的值,如果你设置值的间距是1的话,你用完就产生的是2,如果不用就产生当前的值,就是1
采纳该答案 已采纳该答案 专家已采纳评论解决 无用打赏举报微信扫一扫
分享评论登录 后可回复...
查看更多回答(2条)
报告相同问题?
提交
相关推荐 更多相似问题
- 2016-05-09 10:00回答 3 已采纳 nextval这个函数是序列里去下一个值的,你设置的从1开始,如果你用了nextval,生成的就是下一个产生的值,如果你设置值的间距是1的话,你用完就产生的是2,如果不用就产生当前的值,就是1
- 2018-05-01 12:43回答 4 已采纳 很明显的变量赋值逻辑错误,改成 alter_sql:='alter sequence seq_cus_id increment by -'||seq_currval;
- 2017-09-06 10:27回答 3 已采纳 http://www.cnblogs.com/yuanchaoyong/p/6213885.html
- 2021-05-07 01:03邓勃鋆的博客 在数据库部署了RAC环境之后,偶尔会出现从Oracle Sequence所取出来的数是混乱的,...假设RAC上的两个节点上序列缓存设为20,第一个节点上缓存1-20,第二个节点缓存了21-40,当从不同节点来进行对sequence取值的时候...
- 2021-05-06 06:16秦卓的博客 Oracle创建序列及循环自增取值问题用sys登陆OracleSQL> conn sys/root as sysdba;创建sequenceSQL> create sequence test_seq maxvalue 9 increment by 2 start with 1 cache 2 cycle;创建对应测试tableSQL>...
- 2021-05-04 00:46烟幕缭绕的博客 创建序列create sequence 名start...取值的话序列名.nextval 下一个值虚列名.currval 当前值注意:当第一次使用序列的时必须使用 序列名.nextval例如:建立序列create sequence seq_t;创建表create table a (id int,...
- 2016-04-23 17:43回答 2 已采纳 数据库中有seq这个对象吗?
- 2016-07-05 07:44回答 1 已采纳 Oracle 不直接支持 自动递增的列。 需要创建一个序列 SEQUENCE。 又由于无法在列的默认值那里,设置默认值为序列。因此只能通过触发器来设置。 设置好触发器以后,所有的插入语句,将忽
- 2017-03-30 03:13回答 6 已采纳 >select SEQ_SIAPP_COUPON_NO.nextval from dual 改为 select 99999 from dual 试下好用与否? 如果好用,说
- 2016-11-23 17:44李一的博客 以前写sql的时候总是担心current()得到的值并不会绝对等于我上一次nextval()取得的值; 因为可能其他线程并发访问nextval()。 先说结论吧: 当你拿到一个数据库连接,先nextval(), 然后无论其他再怎么操作这个...
- 2021-05-04 05:31原画人的博客 数据库设计的三大范式第一条就是独立的表结构中必须有唯一...编码如下:typeidintnotnullprimarykeyidentity(1,1),在Oracle 10G中关于序列(Sequence)的使用.(A)Sequence-序列的定义语法SEquence-序列是一个数据库项...
- 2021-12-28 10:31lgq2016的博客 设置序列值的方法一般有如下两种, 1.删除重建 drop sequence seq_t; create sequence seq_t; increment by 1 start with 1//任何值 maxvalue 99999999999999; 2.修改步长再改回去 select seq_t.nextval from...
- 2021-09-19 11:04回答 1 已采纳 g o o g o g o o next [0, 0, 0, 0, 1, 2, 1, 2, 3]
- 2018-11-07 06:44回答 1 已采纳 已经解决 变量名字和字段重复 互等可能存在问题,更改同样的名字即可
- 2017-06-07 10:43回答 2 已采纳 去掉SEQUENCE的触发器,Hibernate是直接调用SEQUENCE.nextval的,此时如果数据库端有主键触发器的话就会增加2
- 2021-04-30 08:34weixin_39598584的博客 用sys登陆OracleSQL> conn sys/root as sysdba;创建sequenceSQL> create sequence test_seq maxvalue 9 increment by 2 start with 1 cache 2 cycle;创建对应测试tableSQL> create table test_table(next ...
- 2021-05-25 15:08一个技术十分low的女汉子的博客 oracle 获取序列的下一个值:序列名.nextval 当前值:序列名.currval MySQL 获取序列的下一个值:nextval('序列名') 当前值:currval('序列名')
- 2021-04-30 08:35刘虓震的博客 Oracle创建序列及循环自增取值问题用sys登陆OracleSQL> conn sys/root as sysdba;创建sequenceSQL> create sequence test_seq maxvalue 9 increment by 2 start with 1 cache 2 cycle;创建对应测试tableSQL>...
- 2017-07-27 08:31回答 2 已采纳 insert into FUEL_MATERIAL (MATERIAL_HEAT, MATERIAL_NOT_HEAT, MATERIAL_NUMBER, MATERIAL_ID, MAT
- 2021-05-02 10:08l00f的博客 1、序列的创建与说明创建序列,Oracle序列的语法格式为:CREATE SEQUENCE 序列名[INCREMENT BY n][START WITH n][{MAXVALUE/ MINVALUE n|NOMAXVALUE}][{CYCLE|NOCYCLE}][{CACHE n|NOCACHE}];1)INCREMENT BY用于定义...
- 没有解决我的问题, 去提问