<a target=_blank name="t0"></a>
<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