数据表temp
两个字段id(int),cont(varchar2)
增加一条记录,id为表中记录id最大值加1,cont为test
目前的做法是用select max(id) from temp,然后再insert into
不过这样要访问数据库两次,有没有办法一次完成?

解决方案 »

  1.   


    insert into temp values((select max(id)+1 from temp),'cont');
      

  2.   

    1.最好建一个序列,然后insert into temp values(sequence.nextval,'sdfsdf');
    2.insert into temp (id,cont) values (select max(id)+1 from temp,'sdsd');
      

  3.   

    insert into temp(id,cont)
    values
    ((select max(id)+1 from temp),test)
      

  4.   

    不过第二个,如果表是空的话,会出错的。
    而且语句应该是
    insert into test2 (id,cont) (select max(id)+1,'sdsd' from test2);
      

  5.   

    用sequence吧,
    懒的话就用触发器.