insert all和insert first语句的用法

来源:这里教程网 时间:2026-03-03 13:31:18 作者:

insert all和insert first语句,用于按给定条件同时向多个表插入数据,以下记录了它们的用法和区别。 1、无条件insert all 用于不分条件的向几个表同时插入一批数据。 建立测试表 create table t1(a number, b varchar2(20)); insert into t1 values(1, 'aaa'); insert into t1 values(2, 'bbb'); insert into t1 values(3, 'ccc'); commit; create table t2(a number, b varchar2(20)); create table t3(a number, b varchar2(20)); create table t4(a number, b varchar2(20)); 从第一个表中获取数据,并同时写入其它几个表,各个表可以有不同的值 insert all into t2 values (a + 1, b)               into t3 values (a + 2, b)     select a, b from t1; commit; 如果各个表插入的数据一样,则以上还可以简化 insert all into t2               into t3     select a, b from t1; commit; 2、有条件insert all 根据查询数据的不同值,分别插入不同表 insert all when a >=1 then               into t2               when a >=2 then               into t3               else               into t4     select a, b from t1; commit; 观察几个表的查询结果 select * from t1; A          B ---------- -------------------- 1           aaa 2           bbb 3           ccc select * from t2; A           B ---------- -------------------- 1           aaa 2           bbb 3           ccc select * from t3; A           B ---------- -------------------- 2           bbb 3           ccc select * from t4; 未选定行 3、有条件insert first 如果第一个when子句的值为true,对于给定的行执行相应的into子句,并且跳过后面的when子句,后面的插入语句不再执行 insert first when a >=1 then                  into t2                  when a >=2 then                  into t3                  else                  into t4        select a, b from t1; commit; 观察表的查询结果 select * from t1; A           B ---------- -------------------- 1           aaa 2           bbb 3           ccc select * from t2; A           B ---------- -------------------- 1           aaa 2           bbb 3           ccc select * from t3; 未选定行 select * from t4; 未选定行

相关推荐