关于序列的问题2 本帖最后由 action_sup 于 2011-03-01 19:36:48 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 idle> conn eygle/eygle已连接。eygle@SZTYORA> create sequence myseq;序列已创建。eygle@SZTYORA> create table tmp 2 ( 3 nex number(3) 4 );表已创建。eygle@SZTYORA> select myseq.nextval from dual; NEXTVAL---------- 1eygle@SZTYORA> insert into tmp(nex) values(myseq.nextval);已创建 1 行。eygle@SZTYORA> select * from tmp; NEX---------- 2eygle@SZTYORA> select myseq.nextval from dual; NEXTVAL---------- 3eygle@SZTYORA> 看来我的环境有问题啊,对表中插入序列值总是不对。有没有人也遇到过这种问题啊?有意义吗?2、3,都是递增,这样问:有意义吗?->luoyoumou,不知道你是不是看明白我的问题了。,确实是递增,可是递增的值不对 因为你每次都是取得下一个值,当然是递增了,你要是再mysql.nextval还等于4呢 to:liuyyuns,请再看看我的问题,尤其是标红的地方to:BOBO12082119,非常感谢,学习了 下面是加了序列参数后的代码,执行结果没变,还是不对。在建序列和表之前都drop过了。如果序列的值插入空表之前,先在表中插入一行数据,执行的结果就没问题了。不知道为什么,有谁遇到过同样的问题吗?是DB建的有问题?drop sequence myseq;create sequence myseq start with 1 increment by 1 cache 2 minvalue 1;drop table tmp;create table tmp(nex number(3));select myseq.nextval from dual; --(1)--insert into tmp(nex) values(123); 如果把这行的注释打开,序列插入表中的值就正确了。insert into tmp(nex) values(myseq.nextval);select * from tmp; --(2)select myseq.nextval from dual;--(3) 你创建序列是ORDER型的吗?如果不是,就回产生不顺序的情况 你的2个insert是放在程序里面一起执行的还是在外面测试的时候单步执行的? 在线等!!!!!!着急 请大家分析如下语句,看oracle是怎么工作的? 怎样增加表字段,并设置为主键 crontab定时备份问题 请问oracle 支持snmp 协议吗? google calendar 表的设计问题 实现问题? 两个数按2进制位-与操作 在oem里有没有像创建表一样的可视化界面对创建好的表进行修改?就像sqlserver里的一样? win2000server上装了oracle,访问web几次之后会出现下面提示 ora-01002: fetch out of sequence 学习数据库如何着手 关于两个不同版本ORACLE访问的问题
已连接。
eygle@SZTYORA> create sequence myseq;序列已创建。eygle@SZTYORA> create table tmp
2 (
3 nex number(3)
4 );表已创建。eygle@SZTYORA> select myseq.nextval from dual; NEXTVAL
----------
1eygle@SZTYORA> insert into tmp(nex) values(myseq.nextval);已创建 1 行。eygle@SZTYORA> select * from tmp; NEX
----------
2eygle@SZTYORA> select myseq.nextval from dual; NEXTVAL
----------
3eygle@SZTYORA>
->luoyoumou,不知道你是不是看明白我的问题了。,确实是递增,可是递增的值不对
to:BOBO12082119,非常感谢,学习了
如果序列的值插入空表之前,先在表中插入一行数据,执行的结果就没问题了。不知道为什么,有谁遇到过同样的问题吗?是DB建的有问题?
drop sequence myseq;
create sequence myseq start with 1 increment by 1 cache 2 minvalue 1;
drop table tmp;
create table tmp
(
nex number(3)
);
select myseq.nextval from dual; --(1)
--insert into tmp(nex) values(123); 如果把这行的注释打开,序列插入表中的值就正确了。
insert into tmp(nex) values(myseq.nextval);
select * from tmp; --(2)
select myseq.nextval from dual;--(3)