温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

insert all和insert first语句的用法

发布时间:2020-08-08 11:14:36 来源:ITPUB博客 阅读:177 作者:llnnmc 栏目:关系型数据库

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;

未选定行

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI