oracle insert all 复合表插入
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,insert all (复合表插入),是将一个查询结果同时插入多个表中的功能。使用insert all的好处是通过读取一次源表就可以插入多张目标表,减少重复读取的开销。语法:INSERT [ALL]
千家信息网最后更新 2026年11月01日oracle insert all 复合表插入
insert all (复合表插入),是将一个查询结果同时插入多个表中的功能。使用insert all的好处是通过读取一次源表就可以插入多张目标表,减少重复读取的开销。
语法:
INSERT [ALL] [conditional_insert_clause]
[insert_into_clause value_clause] (subquery);
conditional_insert_clause is:
[ALL] [FIRST]
[WHEN condition THEN] [insert_into_clause value_clause]
[ELSE] [insert_into_clause value_clause]
all:不考虑先后关系,只要满足条件,就全部插入;
first:考虑先后关系,如果有数据满足第一个when条件又满足第二个when条件,则执行第一个then插入语句,第二个then就不插入第一个then已经插入过的数据了。
其区别也可描述为,all只要满足条件,可能会作重复插入;first首先要满足条件,然后筛选,不做重复插入
示例:
insert all when c1<1000 then into samall_orders values (oid,c1,sid,cid) when c1 <2000 then into medium_orders values (oid,c1,sid,cid) when c1>2000 and c1 <2900 then into large_orders vlaues (oid,c1,sid,cid) else into special_orders select oid,c1,sid,cid from orders;
指定insert first 当第一个when条件成立时,执行该when条件后的语句,并且跳过后面的 WHEN 子句(后面的when语句都不再考虑满足第一个When子句的记录,即使该记录满足when语句中的条件)。
insert first when c1<1000 then into samall_orders values (oid,c1,sid,cid) when c1 <2000 then into medium_orders values (oid,c1,sid,cid) when c1>2000 and c1 <2900 then into large_orders vlaues (oid,c1,sid,cid) else into special_orders select oid,c1,sid,cid from orders;
上面两条语句区别在第二个when条件,insert all 中 第二个条件会插入orders 表中c1<2000的记录,insert first 中第二个when条件会插入orders表中1000
条件
语句
子句
先后
数据
功能
同时
多个
多张
好处
开销
目标
示例
结果
语法
过后
面的
查询
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技企业
互联网加科技
互联网科技名片
云之行互联网科技
互联网科技公司税收优惠
互联网扶贫科技
互联网与科技金融数据
互联网金融 科技金融
互联网科技小贷
唐信互联网科技
艾特科技互联网
阿里巴巴算科技企业还是互联网
互联网对科技的发展
湖南一路畅行互联网科技
互联网科技商业
中国互联网十大科技股排名
全球科技与互联网公司市值变化
杭州科技互联网公司有哪些
互联网的黑科技实验室
科技发展第三阶段互联网时代
中智农互联网科技
银川新华互联网科技职业技术培训学校图片
栖莱科技互联网股份有限公司
中国航天科技大学国际工业互联网
深圳市罗太互联网科技有限公司
卓翼科技产业互联网合作
北京天晋互联网科技有限公司
米泉互联网科技专业怎么样
杭州融税互联网科技有限公司
互联网科技创新方面的资料