Temporary Table 臨時表的用法

2021-06-08 16:12:16 字數 1192 閱讀 9712

臨時表(

temporary table

)通常應用在需要定義臨時集合的場合。但是,在大部分需要臨時集合的時候,我們根本就不需要定義臨時表。當我們在

一條

sql語句中只使用一次臨時集合時,我們可以使用

巢狀表表示式

來定義臨時集合;當我們在

一條

sql語句中需要多次使用同一臨時集合時,我們可以使用

公共表表示式

;只有當我們在乙個工作單元中的

多條

sql語句中使用同一臨時集合時,我們才需要定義臨時表。

使用須知:

1. db2

的臨時表需要用命令declaretemporary table

來建立, 並且需要建立在使用者臨時表空間上;

2. db2

在資料庫建立時, 預設並不建立使用者臨時表空間, 如果需要使用臨時表, 則需要使用者在建立臨時表之前建立使用者臨時表空間;

3. 臨時表的模式為session

,session即基於會話的,且在會話之間是隔離的。當會話結束時,臨時表的資料被刪除,臨時表被隱式卸下。對臨時表的定義不會在syscat.tables中出現 .;

4. 預設情況下, 在commit

命令執行時, db2臨時表中的所有記錄將被刪除; 這可以通過建立臨時表時指定不同的引數來控制;

5. 執行rollback

命令時, 使用者臨時表將被刪除;

定義舉例:

1)、定義預設的臨時表,該錶在commit命令執行後,定義的臨時表將被刪除

declare global temporary table  session.emp

(  id varchar(20),

name varchar(50)

) on commit delete rows ;

2)、定義臨時表,不計日誌,且commit命令後不刪除臨時表

declare global temporary table  session.emp

(  id varchar(20),

name varchar(50) )

on commit preserve rows with replace not logged;

mysql臨鍵鎖 innodb臨鍵鎖鎖定範圍

臨鍵鎖解決當前讀的幻讀問題 通過鎖定範圍,使另外乙個事務不能插入 mvcc解決不加鎖讀的幻讀問題。create table test id int,grade char 1 name varchar 20 primary key id key grade idx grade engine innod...

java專案臨結局

昨天我們實現了功能模組的整合,今天是優化階段,周一匯報,在此之前,團隊拍照留念,進度且聽今晚分析。今天是十月三號,寫這篇文章的時候我們僅僅是實現了 功能模組的整合,而從當天的記錄來看,我的內心是激動的,孰不知在這小小的喜悅之後是乙個個的考驗,也許那天晚上我寫完這個 整合之後,還在弄介面優化,也許這一...

mysql 臨鍵鎖 記錄鎖 間隙鎖 臨鍵鎖

這三種並不是鎖,而是鎖的演算法。它們的共同特點是互斥的。間隙鎖和臨鍵鎖只有在rr級別中才能生效。set global transaction isolation level repeatable read select global.tx isolation 間隙鎖的目的是為了防止多個事務把記錄插入...