Posted on 2010-05-13 22:54
Prayer 閱讀(1422)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
DB2
臨時(shí)表(TEMPORARY TABLE)通常應(yīng)用在需要定義臨時(shí)集合的場(chǎng)合。但是,在大部分需要臨時(shí)集合的時(shí)候,我們根本就不需要定義臨時(shí)表。當(dāng)我們?cè)谝粭lSQL語(yǔ)句中只使用一次臨時(shí)集合時(shí),我們可以使用嵌套表表達(dá)式來(lái)定義臨時(shí)集合;當(dāng)我們?cè)谝粭lSQL語(yǔ)句中需要多次使用同一臨時(shí)集合時(shí),我們可以使用公共表表達(dá)式;只有當(dāng)我們?cè)谝粋€(gè)工作單元中的多條SQL語(yǔ)句中使用同一臨時(shí)集合時(shí),我們才需要定義臨時(shí)表。
可以通過(guò)以下三種方式定義臨時(shí)表:
方法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;
定義了臨時(shí)表后,我們可以像使用普通表一樣使用臨時(shí)表。臨時(shí)表只對(duì)定義它的用戶有效,不同用戶可以在同一時(shí)間定義同名的臨時(shí)表,他們之間互不影響。臨時(shí)表的生命周期是SESSION,當(dāng)SESSION關(guān)閉時(shí),臨時(shí)表將自動(dòng)刪除,這也是臨時(shí)表的模式名只能為SESSION的原因。此外,我們還可以給臨時(shí)表定義索引。更多細(xì)節(jié)請(qǐng)參考DB2 信息中心。
----更多參見(jiàn):DB2 SQL 精萃
本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/shangboerds/archive/2010/01/27/5260783.aspx