insert into table1(id,name) select col1,name from table2;
col1字段不在table2中,是个虚拟的 自增字段 ,请问这个sql如何写可以是插入table1表的id数值,自增(1,2,3,4),谢谢

解决方案 »

  1.   

    随便建个序列seq_yourname
    比如
    create sequence seq_yourname
    minvalue 1
    maxvalue 99999999999999
    start with 1
    increment by 1
    cache 20;
    然后
    insert into table1(id,name) select seq_yourname.nextval,name from table2;
      

  2.   

    晕,其实你直接插rownum就好了
    insert into table1(id,name) select rownum,name from table2;
      

  3.   

    用序列比较好,不用考虑并发问题
    如果用rownum也可以实现,不过最好是先检测目标表的MAX ID,然后在此基础+ROWNUM
    并且要考虑并发问题
      

  4.   

    晕,其实你直接插rownum就好了 
    insert into table1(id,name) select rownum,name from table2;这样的能用一次。。不能用第二次
      

  5.   

    先定义序列seq1
    再执行
    insert into table1(id,name) select seq1.nextval,name from table2;
      

  6.   

    insert into table1(id,name) select rownum,name from table2;就可以了啊
      

  7.   

    不知道这样行不,没试过:
    insert into table1(id,name) values
    (select (select max(id)+1 from table1)+rownum ,name from table2;