`
tomotoboy
  • 浏览: 166903 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

一次向多个表中插入记录

    博客分类:
  • SQL
阅读更多
问题描述
有时需要将一个表中的数据按照一定的条件分别一次性插入到多个表中,怎样实现?

ORACLE
使用INSERT ALL 或INSERT FIRST语句。这两种方法除了关键字ALL和FIRST不同外,其语法相同。下面例子使用INSERT ALL
CREATE TABLE MEDIUM_ORDERS  AS SELECT * FROM SMALL_ORDERS 
CREATE TABLE LARGER_ORDERS  AS SELECT * FROM SMALL_ORDERS 
CREATE TABLE SPECIAL_ORDERS AS SELECT * FROM SMALL_ORDERS 

INSERT ALL
 WHEN ORDER_TOTAL <1000 THEN
  INTO SMALL_ORDERS
 WHEN ORDER_TOTAL >1000 AND ORDER_TOTAL<2000 THEN
  INTO MEDIUM_ORDERS
 WHEN ORDER_TOTAL >2900 THEN
  INTO LARGER_ORDERS
 ELSE 
  INTO SPECIAL_ORDERS
SELECT * FROM OE.ORDERS



DB2
将所有目标用UNION ALL构成一个内联视图,并以该内联视图作为INSERT INTO的目标。必须要在这些表中设置约束条件,以确保这些行插入到正确的表中。
create table dept_east
(deptno interger,
dname varchar(10),
loc varchar(10) check (loc in ('NEW YORK','BOSTON'))
)

create table dept_mid
(deptno interger,
dname varchar(10),
loc varchar(10) check (loc ='CHICAGO')
)

create table dept_west
(deptno interger,
dname varchar(10),
loc varchar(10) check (loc ='DALLAS')

insert into (select * from dept_east union all
             select * from dept_mid  union all
             select * from dept_west union all
) select * from dept
分享到:
评论

相关推荐

    c#向数据表中插入多条记录

    在C#进行数据库编程时,尤其是在处理主从表的关系时,常常需要一次性更新多个表的多条记录,并确保这些操作的原子性,即要么全部成功,要么全部失败。在这种情况下,事务处理是至关重要的。事务提供了对数据库操作的...

    SQL COOKBOOK(压缩1/2)

    4.6一次向多个表中插入记录 4.7阻止对某几列插入 4.8在表中编辑记录 4.9当相应行存在时更新 4.10用其他表中的值更新 4.11合并记录 4.12从表中删除所有记录 4.13删除指定记录 4.14删除单个记录 4.15删除违反...

    SQL COOKBOOK(压缩2/2)

    4.6一次向多个表中插入记录 4.7阻止对某几列插入 4.8在表中编辑记录 4.9当相应行存在时更新 4.10用其他表中的值更新 4.11合并记录 4.12从表中删除所有记录 4.13删除指定记录 4.14删除单个记录 4.15删除违反...

    07-数据表中数据插入方式(4种)

    本文介绍了四种常见的数据插入方式,它们分别是:向表中所有字段插入数据、向表中某字段插入数据、同时插入多条记录以及将查询结果插入至数据表。以下是这四种数据插入方式的详细介绍: 1. 向表中所有字段插入数据 ...

    ajax 插入记录,删除记录,修改记录

    在Web开发中,Ajax(Asynchronous JavaScript and XML)技术是一种实现页面无刷新更新数据的关键方法。它允许我们向服务器发送异步请求,获取或更新数据,而无需重新加载整个网页,提升了用户体验。在这个主题中,...

    Oracle中多表关联批量插入批量更新与批量删除操作

    在Oracle中,如果两个或多个表之间存在关联,比如`emp`表和`dept`表通过`deptno`字段关联,批量插入数据时需要确保关联关系的一致性。例如,插入`emp`表时,`deptno`字段应引用已存在于`dept`表中的`deptno`。可以先...

    mysql创建表向表中插入数据实例

    2. 插入数据 (`INSERT INTO`),可以一次插入多条记录。 3. 更新数据 (`UPDATE`),用于修改表中已存在的记录。 4. 删除数据 (`DELETE FROM`),用于从表中移除满足特定条件的记录。 通过这个实例,我们可以了解到在...

    sqlserver 循环临时表插入数据到另一张表

    sqlserver 循环临时表插入数据到另一张表 -- 声明变量 DECLARE @SupCode as varchar(100), @ProdCode as varchar(50), @PackLayer as varchar(50), @CodeStatus as varchar(50), @ProductId as varchar(50), @...

    mysql 一次向表中插入多条数据实例讲解

    在MySQL数据库中,一次性向表中插入多条数据是一种高效的操作方式,特别是在处理大量数据时。这种方式能够显著减少网络通信和数据库操作的次数,从而提高整体的执行效率。本实例将详细讲解如何在MySQL中实现这个功能...

    PHP中批量插入多条记录到数据表

    在上面的代码中,我们首先创建了一个PDO实例来连接数据库,然后定义了一个包含多条记录的数据数组`$data`。接着,我们构建了SQL语句,使用`array_map`函数处理数据,生成对应的占位符。最后,我们通过循环遍历数据,...

    C#开发,ODP方式,一次向表写入多条记录

    本知识点将详细讨论如何使用C#通过ODP.NET实现一次向表写入多条记录,以提高批量插入数据的速度。 1. **ODP.NET介绍** ODP.NET是Oracle针对.NET Framework设计的数据库驱动程序,它提供了对Oracle数据库的全面支持...

    Sqlite数据库里插入数据的条数上限是500

    原来一次性向数据库里插入数据的条数不能太多,上限是500条。超出会报错。 解决方案就是只好分多次插入数据库了。 您可能感兴趣的文章:SQLite教程(八):命令行工具介绍SQLite教程(十二):锁和并发控制详解...

    jsp中教师表的插入和删除操作

    例如,如果一次添加多个教师记录,应在一个事务内完成,以防止部分成功的情况。 9. **安全考虑**:在实际应用中,还需要考虑安全性问题,如使用预编译的SQL语句防止SQL注入,对用户输入进行验证,以及使用连接池来...

    android中SQLite数据库中用insert同时插入多条记录的方法和效率比较

    Android 中 SQLite 数据库中用 insert 同时插入多条记录的方法和效率比较 在 Android 开发中,我们常会遇到这样一种情况:在建立一个 SQLite 数据库时,想同时插入大量数据。那么应该怎么做呢?下面我们将比较三种...

    C#.NET中如何批量插入大量数据到数据库中

    1. **使用SQL事务**:将多个插入操作封装在一个事务中,可以减少与数据库的交互次数,提高性能。在C#.NET中,可以使用`SqlConnection`的`BeginTransaction`、`Commit`和`Rollback`方法来管理事务。 2. **批量插入...

    数据库表生成插入语句工具

    INSERT语句是SQL语言中的基本组成部分,用于向数据库表中插入新的记录。其基本语法结构如下: ```sql INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...); ``` 例如,如果我们有一个名为`Students`的表...

    C#实现批量插入sqlserver数据

    表值参数是SQL Server 2005引入的一个特性,允许将多个行作为单个参数传递给存储过程。在C#中,这通常涉及创建一个用户定义的表类型,然后在存储过程中接收并插入数据。这种方法适合批量处理,尤其是与存储过程配合...

    易语言学习进阶超级列表框插入表项

    7. **优化与效率**:在大量数据插入时,为了提高程序性能,可以考虑一次性插入多个表项,或者使用异步加载等方式避免阻塞用户界面。 通过以上讲解,我们可以了解到易语言中超级列表框插入表项的基本概念和实现方法...

    向Oracle数据库插入Clob大段文本解决方法

    总之,向Oracle数据库插入或更新Clob大段文本是一个涉及SQL语句构建、参数类型设置及值赋值等多个方面的过程。正确理解和掌握这些细节,能够帮助开发者更高效、安全地管理数据库中的大量文本数据。

    mybaits 多线程 实现数据批量插入 (运用CountDownLatch实现闭锁)

    MyBatis的批处理功能允许我们在一次数据库连接中执行多条SQL语句,从而减少了数据库连接的创建和关闭的开销,提高了性能。批处理可以通过设置`Statement`的`setFetchSize()`方法或者MyBatis的`@BatchResultSet`注解...

Global site tag (gtag.js) - Google Analytics