有3张表
表一:table1 字段(id,courseno,coursename)
表二:table2 字段(id,courseno,majorno)
表三:table3 字段(id,courseno,labno)请问各位大侠,如何用一条插入语句,往这三张表插入数据,这三张表的id,courseno都是一样的

解决方案 »

  1.   

    insert all
    into test1(id,name,sex,cj)
    into test2(id,name,sex,cj)
    into test3(id,name,sex,cj)
    select id,name,sex,cj from test ;
      

  2.   

    http://blog.csdn.net/zftang/article/details/6208357
      

  3.   

    最简单的,一条SELECT结果向多个表中插入: insert all
    into test1(id,name,sex,cj)
    into test2(id,name,sex,cj)
    into test3(id,name,sex,cj)
    select id,name,sex,cj from test ;  依据条件实现: insert all
    when id <10 then
    into test1(id,name,sex,cj)
    when id >10 and id<50  then
    into test2(id,name,sex,cj)
    when id >50 and id<1000  then
    into test3(id,name,sex,cj)
    select id,name,sex,cj from test
      

  4.   

    其实我的意思是先往table1中插入数据,然后选取table1中的id,courseno同时插入到table2和table3中,但是同时另外也要插入table2的majorno,table3的labno这两个值
      

  5.   

    根据你的意思,你是inert  一条数据到table1,然后  insert table2  时(select id,courseno from table1 )插数据至table 2  table3,接着再往table1插入数据这样一条一条的处理?还是先批量的把要insert 到table1的数据都处理完,然后再来同时处理table2 和table3的数据?这里我给一种方法是前者,一条一条的处理,先insert 一条记录到table1,然后处理table2  table3,接着再往table1中insert一条记录。
    -- insert one row
    insert all
    into table1(id,courseno,coursename) values (id,courseno,coursename)
    into table2(id,courseno,majorno) values (id,courseno,majorno)
    into table3(id,courseno,labno) values (id,courseno,labno)
    select 1 id,'001' courseno,'chinese' coursename,'m001' majorno,'l001' labno from dual; 
    --insert one row
    insert all
    into table1(id,courseno,coursename) values (id,courseno,coursename)
    into table2(id,courseno,majorno) values (id,courseno,majorno)
    into table3(id,courseno,labno) values (id,courseno,labno)
    select 2 id,'002' courseno,'english' coursename,'m002' majorno,'l002' labno from dual; 
      

  6.   

    我这给的方法,数据来源是用户自定义的输入进去的,当然数据 id, courseno,coursename, majorno, labno  也可以这样取select id, courseno,coursename, majorno, labno from table_a,table_b (这是数据源在已存在的表中)。
    --先处理表table1,再把table2 和table3 同时处理:
    ---存数据的表
    create table table4 (id number,courseno varchar2(5),coursename varchar2(20),majorno varchar2(5),labno varchar2(5));insert into table4 
    select 2 id,'002' courseno,'english' coursename,'m002' majorno,'l002' labno from dual;
    --先把数据都放入到table1
    insert into table1 select id,courseno,coursename from table4;
    ------------------------------------------------------------------------------
    --再处理table2和table3 ,insert t2 t3
    insert all
    into table2(id,courseno,majorno) values (id,courseno,majorno)
    into table3(id,courseno,labno) values (id,courseno,labno)
     select t1.id, t1.courseno, t4.majorno, t4.labno from table1 t1,table4 t4 where t1.id=t4.id;
     或
     insert all
    into table2(id,courseno,majorno) values (id,courseno,majorno)
    into table3(id,courseno,labno) values (id,courseno,labno)
     select t1.id, t1.courseno,'000' majorno,'100' labno from table1 t1,dual;