Welcome 微信登录

首页 / 数据库 / MySQL / Oracle的多表insert操作

在一般操作中,我们可能会碰到一些相同或者雷同的数据源要插入到不同的数据表中的情况 Oracle9i引入了多表insert操作, 采用以下三个形式.Unconditional(无条件的): 没有任何限制地向多个表中插入给定表的数据;Pivoting: 用一个非规范化的结构把数据插入到一个或多个表中.Conditional(有条件的): 根据已有的特定条件对每个约束进行控制.表ADDRESS数据:

一、无条件insert all

INSERT ALLinsert_into_clause values_clause_1[insert_into_clause values_clause_2]……Subquery;1、指定所有跟随着的多表 insert_into_clauses 执行无条件的多表插入;2、对于每个由子查询返回的行, Oracle 服务器执行每一个 insert_into_clause一次。
  1. insert all   
  2. into dept values (id,detail,detail)  
  3. into emp(empno,ename) values(id,detail)  
  4. select * from address;  

二、条件insert all

INSERT ALLWHEN condition THEN insert_into_clause values_clause[WHEN condition THEN] [insert_into_clause values_clause]……[ELSE] [insert_into_clause values_clause]Subquery;1、指定 conditional_insert_clause 来执行一个条件多表插入;2、Oracle 服务器通过相应的 WHEN 条件过滤每一个 insert_into_clause,确定是否执行这个 insert_into_clause;3、一个单个的多表插入语句可以包含最多 127 个 WHEN 子句
  1. insert all   
  2. when id=1 then into dept values (id,detail,detail)  
  3. when id=3 then into emp(empno,ename) values(id,detail)  
  4. else into emp(empno) values(id)  
  5. select * from address where id=1;  
  • 1
  • 2
  • 下一页
Ubuntu 12.04 卸载和安装MySQL异构数据库多线程大表数据同步工具(支持oracle2mysql,mysql2oracle...)相关资讯      Oracle高级培训 
  • delete表的数据后恢复  (08/30/2012 08:59:58)
  • 使用ASH信息,发现高CPUsession  (08/14/2012 07:21:32)
  • 如何阅读Oracle Errorstack Output  (08/14/2012 07:15:47)
  • Oracle Apps Patching:adpatch(  (08/16/2012 15:41:37)
  • 话说V$SQL_MONITOR  (08/14/2012 07:19:54)
  • Oracle Apps DBA工具:ADADMIN使用  (08/14/2012 07:00:09)
本文评论 查看全部评论 (0)
表情: 姓名: 字数