本帖最后由 action_sup 于 2011-03-01 19:36:48 编辑

解决方案 »

  1.   

    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.   

    看来我的环境有问题啊,对表中插入序列值总是不对。有没有人也遇到过这种问题啊?有意义吗?2、3,都是递增,这样问:有意义吗?
    ->luoyoumou,不知道你是不是看明白我的问题了。,确实是递增,可是递增的值不对
      

  3.   

    因为你每次都是取得下一个值,当然是递增了,你要是再mysql.nextval还等于4呢
      

  4.   

    to:liuyyuns,请再看看我的问题,尤其是标红的地方
    to:BOBO12082119,非常感谢,学习了
      

  5.   

    下面是加了序列参数后的代码,执行结果没变,还是不对。在建序列和表之前都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)
      

  6.   

    你创建序列是ORDER型的吗?如果不是,就回产生不顺序的情况
      

  7.   

    你的2个insert是放在程序里面一起执行的还是在外面测试的时候单步执行的?