DB2——临时表

----start

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

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

[c-sharp] view plain copy
  1. 方法1:  
  2. DECLARE GLOBAL TEMPORARY TABLE SESSION.EMP  
  3. (  
  4.     NAME VARCHAR(10),---姓名  
  5.     DEPT SMALLINT,---部门  
  6.     SALARY DEC(7,2)---工资  
  7. )  
  8. ON COMMIT DELETE ROWS;  
  9.    
  10. 方法2:  
  11. DECLARE GLOBAL TEMPORARY TABLE session.emp  
  12. LIKE staff INCLUDING COLUMN DEFAULTS  
  13. WITH REPLACE  
  14. ON COMMIT PRESERVE ROWS;  
  15.    
  16. 方法3:  
  17. DECLARE GLOBAL TEMPORARY TABLE session.emp AS  
  18. (  
  19.     SELECT * FROM staff WHERE <condition>  
  20. )  
  21. DEFINITION ONLY  
  22. WITH REPLACE;  

    定义了临时表后,我们可以像使用普通表一样使用临时表。临时表只对定义它的用户有效,不同用户可以在同一时间定义同名的临时表,他们之间互不影响。临时表的生命周期是SESSION,当SESSION关闭时,临时表将自动删除,这也是临时表的模式名只能为SESSION的原因。此外,我们还可以给临时表定义索引。更多细节请参考DB2 信息中心。

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

----声明:转载请注明出处。

----last updated on 2010.1.27

----written by ShangBo on 2010.1.27

----end

猜你喜欢

转载自www.cnblogs.com/wy20110919/p/9299534.html