DB2 临时表

来源:互联网 发布:ntfs for mac os 编辑:程序博客网 时间:2024/05/03 08:25

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.empLIKE staff INCLUDING COLUMN DEFAULTSWITH REPLACEON COMMIT PRESERVE ROWS; 方法3:DECLARE GLOBAL TEMPORARY TABLE session.emp AS(    SELECT * FROM staff WHERE <condition>)DEFINITION ONLYWITH REPLACE; 


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

原创粉丝点击