oracle数据库中批量把一张表里面的数据插入到不同的表中的方法
程序员文章站
2022-06-22 17:07:27
oracle数据库中批量把一张表里面的数据插入到不同的表中的方法...
oracle数据库中批量把一张表里面的数据插入到不同的表中的方法(insert first into | insert all into)
准备环境
1.oracle数据库自带的scott下的用户表
2.跟emp表表结构相同的两张表,表名我定义为emp_a,emp_b
建表:
create table emp_a as select * from emp where 1 > 2; -- 只要表结构,不要表数据
create table emp_b as select * from emp where 1 > 2; -- 只要表结构,不要表数据
EMP表数据–
用法解析
insert first into: 这种方式表示要把数据分别插入到不同的表中,从上往下第一张表匹配成功的数据在下面的表中不会再进行二次匹配
-- 把emp表中部门大于等于30的数据插入到emp_a表中 --把部门大于等于20的数据插入到emp_b表中
insert first
when deptno >= 30 THEN
into emp_a
when deptno>= 20 then
into emp_b
select * from emp;
执行代码后emp_a表数据
执行代码后emp_b表数据
解析:由于使用的是first,在第一次成功匹配到部门30的数据并且插入到emp_a表中,第二次匹配deptno>=20的时候由于30部门的数据已经匹配到e m p_a表中,不会进行二次匹配,所以emp_a表中只有20 部门的数据
继续往下说insert all into的用法
首先清空emp_a emp_b表中的数据
truncate table emp_a;
truncate table emp_b;
insert all into: 这种方式表示要把数据分别插入到不同的表中,从上往下第一张表匹配成功的数据在后面的表中如果满足条件的话也会进行匹配
-- 把emp表中部门大于等于30的数据插入到emp_a表中 --把部门大于等于20的数据插入到emp_b表中
insert all
when deptno >= 30 THEN
into emp_a
when deptno>= 20 then
into emp_b
select * from emp;
emp_a表数据
emp_b表数据
思维导图
注:由于楼主表达能力有限,表达不清晰之处敬请谅解,可私下与楼主进行沟通!
2020-09-13 第一篇博客
本文地址:https://blog.csdn.net/weixin_43654613/article/details/108563178
上一篇: 邓猛女的姓氏经历了几次变化?她为何被汉桓帝打入冷宫?
下一篇: MySQL深入总结