无条件INSERT ALL:
insert all into_clause [values_clause] subquery;
//数据被无条件的复制到各自2张表内
insert all
into sal_record values(ename,hiredate,sal)
into mgr_record values(ename,mgr,sal)
select ename,hiredate,mgr,sal from emp;
有条件INSERT ALL:
insert all
[when condition then] [into_clause values_clause]
[else] [into_clause values_clause] subquery;
//满足条件condition则插入目标表
insert all
when sal>1000 then
into sal_record values(ename,hiredate,sal)
when sal>7000 then
into mgr_record values(ename,mgr,sal)
select ename,hiredate,mgr,sal from emp;
有条件INSERT FIRST:
insert first
[when condition then] [into_clause values_clause]
[else] [into_clause values_clause] subquery;
//与上不同的是若第一个when匹配上,后面的when碰到该数据源会跳过
insert first
when sal>1000 then
into sal_record values(ename,hiredate,sal)
when sal>7000 then
into mgr_record values(ename,mgr,sal)
select ename,hiredate,mgr,sal from emp;
//执行结果是对于只要满足第一个when的记录,第二when会跳过该记录
本文详细介绍了SQL中INSERTALL与INSERTFIRST的区别及用法。包括无条件INSERTALL,用于将数据无条件地复制到多个表;有条件INSERTALL,根据特定条件决定数据插入哪个表;以及INSERTFIRST,当第一个条件匹配时,后续条件将被忽略。
6681

被折叠的 条评论
为什么被折叠?



