Posted on 2010-05-13 22:54
Prayer 閱讀(1429)
評論(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