Prayer

在一般中寻求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

DB2 临时表

Posted on 2010-05-13 22:54 Prayer 阅读(1393) 评论(0)  编辑 收藏 引用 所属分类: DB2

 临时表(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; 
方法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 信息中心。

----更多参见:DB2 SQL 精萃

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/shangboerds/archive/2010/01/27/5260783.aspx


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理