`

db2临时表

db2 
阅读更多
----start

    临时表(TEMPORARY TABLE)通常应用在需要定义临时集合的场合。但是,在大部分需要临时集合的时候,我们根本就不需要定义临时表。当我们在一条SQL语句中只使用一次临时集合时,我们可以使用嵌套表表达式来定义临时集合;当我们在一条SQL语句中需要多次使用同一临时集合时,我们可以使用公共表表达式;只有当我们在一个工作单元中的多条SQL语句中使用同一临时集合时,我们才需要定义临时表。

   可以通过以下三种方式定义临时表:

方法1: 
DECLARE GLOBAL TEMPORARY TABLE SESSION.EMP 

    NAME VARCHAR(10),---姓名 
    DEPT SMALLINT,---部门 
    SALARY DEC(7,2)---工资 

ON COMMIT DELETE ROWS; 
  
方法2: 
DECLARE GLOBAL TEMPORARY TABLE session.emp 
LIKE staff INCLUDING COLUMN DEFAULTS 
WITH REPLACE 
ON COMMIT PRESERVE ROWS; 
  
方法3: 
DECLARE GLOBAL TEMPORARY TABLE session.emp AS 

    SELECT * FROM staff WHERE <condition> 

DEFINITION ONLY 
WITH REPLACE; 
    定义了临时表后,我们可以像使用普通表一样使用临时表。临时表只对定义它的用户有效,不同用户可以在同一时间定义同名的临时表,他们之间互不影响。临时表的生命周期是SESSION,当SESSION关闭时,临时表将自动删除,这也是临时表的模式名只能为SESSION的原因。此外,我们还可以给临时表定义索引。

在使用DB2的临时表时, 以下几点需要注意:

  1. DB2的临时表需要用命令Declare Temporary Table来创建, 并且需要创建在用户临时表空间上;

  

  2. DB2在数据库创建时, 缺省并不创建用户临时表空间, 如果需要使用临时表, 则需要用户在创建临时表之前创建用户临时表空间;

  3. 临时表的模式为SESSION; 
 4. 缺省情况下, 在Commit命令执行时, 临时表中的所有记录将被删除; 这可以通过创建临时表时指定不同的参数来控制;
;[/color]
  5. 运行ROLLBACK命令时, 用户临时表将被删除;

  6. 在DB2版本8中, 可以对临时表纪录日志;
分享到:
评论

相关推荐

    DB2系统临时表空间过大引发的性能问题-contracted.doc

    DB2系统临时表空间过大可能引发严重的性能问题,这在实际操作中表现为SQL语句执行时间显著增加。本文以某银行的DB2数据库系统为例,深入探讨了如何诊断和解决此类问题。 首先,当遇到系统响应变慢、ACTIVE SESSION...

    db2表空间不足及处理.doc

    DB2表空间不足及处理 DB2表空间是数据库管理系统中用于存储数据的基本结构单元。DB2表空间不足可能会导致数据库性能下降,甚至崩溃。因此, DB2表空间的检查和处理是数据库管理员的重要任务之一。 一、DB2表空间的...

    db2表空间不足及处理

    这种情况下,DB2数据库会报-1585错误码,表明临时表空间不足。那么,如何解决这个问题呢? 首先,我们需要了解DB2表空间的概念。DB2表空间是指数据库中的一块逻辑存储单元,用于存储数据库中的数据。DB2表空间可以...

    主流数据库中临时表的使用

    临时表可以在不同的数据库管理系统中使用,本文将对 MS SQLSERVER、Oracle 和 DB2 中的临时表进行介绍。 MS SQL SERVER 中的临时表 在 MS SQL SERVER 中,临时表是以井号 (#) 或数学符号 (##) 开头的表名。临时表...

    DB2 SQL 精萃.pdf

    DB2 临时表 临时表是在会话期间创建并仅在该会话中可见的表。例如: ```sql CREATE GLOBAL TEMPORARY TABLE temp_employees (id INT, name VARCHAR(50)) ON COMMIT PRESERVE ROWS; INSERT INTO temp_employees (id,...

    DB2表空间管理

    除了基本的SMS和DMS表空间之外,DB2还支持几种特殊类型的表空间,如系统临时表空间(System Temporary Table Space, STTS)和用户临时表空间(User Temporary Table Space, UTTS)。 **系统临时表空间(STTS)**: 系统...

    DB2的表空间和缓冲池

    创建数据库时并不会自动创建用户临时表空间,但为了允许定义全局临时表,至少需要创建一个用户临时表空间。 #### 二、表空间管理方式 表空间的管理方式有两种: 1. **系统管理的空间(SMS)**:这种类型的表空间...

    NC6.5 数据库参考脚本及临时表空间配置.pdf

    DB2的脚本可能涉及如何利用DB2提供的命令和工具来创建数据库和调整数据库参数,例如设置临时表空间的大小和配置。 在文档的“部分内容”中,我们看到了具体的SQLServer脚本实例,包括创建数据库、添加文件组和文件...

    DB2恢复删除表学习

    - **表空间限制**:仅适用于常规表空间,不支持临时或大型表空间。 #### 四、恢复过程详解 当执行删除表操作时,DB2会在日志文件中记录一条关于该表的信息,并在恢复历史记录文件中保存用于重新创建表的DDL语句。 ...

    db2常用命令 备份还原表

    根据给定文件的信息,我们可以总结出以下关于DB2数据库管理系统的相关知识点,这些知识点主要集中在...此外,DB2还提供了一些高级功能,如日志文件管理、临时表空间创建等,这些都是为了更好地满足不同应用场景的需求。

    NC6.1 数据库参考脚本及临时表要求

    总结而言,本文档涉及的数据库知识点包括数据库的创建与配置、文件和文件组管理、用户和权限管理以及临时表空间的调整,涵盖使用SQL Server、Oracle和DB2这三种主流数据库系统的关键操作。掌握这些知识点对于数据库...

    数据库原理实验二_DB2创建表和空间_艾孜尔江·艾尔斯兰著.docx

    用户可以自定义表空间,例如用户表空间、目录表空间和临时表空间,它们的默认类型通常是SMS。 3. **查看数据库信息**:通过命令`list db directory`可以查看系统数据库目录中的信息,如数据库名、别名等。实验中,...

    DB2表空间管理及查看脚本

    1. **子查询**:通过使用`WITH`子句定义了两个临时表`a`和`bas`,其中`a`用于计算各个表的大小和创建时间,而`bas`则用于累积计算所有表的总大小。 2. **条件过滤**:脚本中定义了一系列的过滤条件,以确保只删除...

    DB2编程基础DB2编程基础DB2编程基础

    - 临时表在DB2中只能建立在用户临时表空间(user temporary tablespace)上,如果数据库仅配置了系统临时表空间(system temporary tablespace),则无法创建临时表。 - 与Sybase和Oracle不同,DB2的临时表在同一个...

    db2使用技巧db2使用技巧

    DB2 的临时表是在一个 session 内有效的,因此,如果程序有多线程,最好不要用临时表,很难控制。 1.3 从数据表中取指定前几条记录 可以使用 FETCH FIRST 语句来取指定前几条记录,例如:SELECT * FROM tb_market_...

    DB2数据库表分区指引

    这一步是临时存储原始数据,确保新分区表创建后可以恢复数据。 4. **创建分区表空间**: 分区表需要特定的表空间来存储各个分区。使用`db2 -tvf create_tablespaces.sql`执行SQL脚本来创建这些表空间,例如,查找...

    db2表space管理.doc

    临时表空间则分为系统临时表空间和用户临时表空间,前者用于内部操作如排序、创建索引等,后者用于存储应用程序的临时数据,这些数据在会话结束后被清除。 创建SMS表空间的命令相对简单,例如在Windows上创建一个名...

    db2命令集合 db2命令集合

    临时表空间主要用于存储临时表或索引,当会话结束时,临时表空间中的所有对象都会被自动删除。其创建命令类似于普通表空间,但通常会关联到特定的临时分组。 1. **8K临时表空间** ```sql CREATE TEMPORARY ...

    DB2编程基础要点 sql 存储过程

    与Sybase和Oracle不同,DB2的临时表只在同一个会话(session)内有效。这意味着在多线程程序中使用临时表可能会带来复杂性,因为难以管理各个会话间的临时表状态。创建临时表时,推荐使用`WITH REPLACE`选项,这可以...

Global site tag (gtag.js) - Google Analytics