如果考虑并发问题,那应该把记录区分开来,即在这个表中增加一个USER_ID字段,并且同一个用户在系统中仅能存在一个,这样你就可以把最大ID找出来了,否则按你目前的方法根本无法解决。(呵呵,我自己认为,如果有人能解决的话,请给我EMAL:[email protected]),先谢谢了

解决方案 »

  1.   

    用包记录哪个ID吧
    create package test_pack
    as
    p_id varchar2(10);
    end;
    /
    create trigger a_tri
    before insert on a
    for each row
    begin
    select id.nextnvl from :new.id from dual;
    select id.nextnvl into test_pack.p_id from dual;
    end;
    /
      

  2.   

    select id.nextnvl as myid from dual;
    通过Java程序附值给一个变量 vmyid
    再插入数据就行了
    insert into table (id,...) values(vmyid,....)
      

  3.   

    很容易实现,你修改一下你的触发器,触发的时候,将该表的ID插入另一个表当中,而你只要去另一个表去读该ID就可以了,完全不用考虑并发同步的问题