insert into tablename (myid) values (myid_sql.nextval)

解决方案 »

  1.   

    在并发的环境下执行insert后再select myid_seq.currval会不会得到不正确的值?
      

  2.   

    不会  oracle这个数据库就是并发的啊
      

  3.   

    我是说如果甲乙2个用户同时执行:
    insert into tablename (myid) values (myid_nextval);
    select myid_seq.currval from DUAL;执行顺序如果:
    甲:insert into tablename (myid) values (myid_nextval);
    乙:insert into tablename (myid) values (myid_nextval);
    甲:select myid_seq.currval from DUAL;
    乙:select myid_seq.currval from DUAL;那甲乙得到的myid_seq.currval不都是乙的myid的值了?
    怎样才能保证甲乙得到各自正确的myid?
      

  4.   

    上面写错了,myid_nextval应为myid_seq.nextval
      

  5.   

    那甲乙得到的myid_seq.currval不都是乙的myid的值了?
    怎样才能保证甲乙得到各自正确的myid?甲:insert into tablename (myid) values (myid_seq.nextval);
    甲:select myid_seq.currval from DUAL;
    乙:insert into tablename (myid) values (myid_seq.nextval);
    乙:select myid_seq.currval from DUAL;--就可以得到各自的值了.
      

  6.   

    可在并发的环境下,怎么保证oracle一定会按这个顺序执行呢?