INSERT ALL和INSERT FIRST的区别

<a target=_blank name="t0"></a>

无条件的插入


在没有匹配条件限制的情况下,使用insert all可以实现

1)一次插入多条数据

2)一次插入多个表

insert all  
into tbl_1 (column_1,column_2)  
into tbl_2 (column_1,column_2)  
select * from tbl_3;  

有条件的插入

insert first/all 是对每一行来进行判断
两者区别:
insert first:对于每一行数据,只插入到第一个when条件成立的表,不继续检查其他条件。
insert all : 对于每一行数据,对每一个when条件都进行检查,如果满足条件就执行插入操作。

<pre class="sql" name="code">--insert first  
--condition_1包含在condion_2中,FIRST就表示前面插入了,后面不会再插入了。--insert all会执行每一个判断,将数据重复插入到每一个符合条件的表中  
insert first  
when condition_1 then  
into tbl_1(column_1,column_2)  
when condition_2 then                        
into tbl_2(column_1,column_2)select * from tbl_3;
 

行转列

表tbl_1有如下6列,column_1为主键:

column_1  column_2  column_3  column_4  column_5  column_6

转换过程如下

insert all
into tbl_2 values (column_1, column_2)
into tbl_2 values (column_1, column_3)
into tbl_2 values (column_1, column_4)
into tbl_2 values (column_1, column_5)
into tbl_2 values (column_1, column_6)
select * from tbl_1


 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值