DB2 臨時表


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的原因。此外,我們還可以給臨時表定義索引,收集統計信息runstats


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM