臨時表的使用方法

2022-08-26 14:09:27 字數 1359 閱讀 6679

臨時表的使用方法:

建立 oracle 臨時表,可以有兩種型別的臨時表:

會話級的臨時表

事務級的臨時表。

1 ) 會話級的臨時表因為這這個臨時表中的資料和你的當前會話有關係,當你當前 session 不退出的情況下,臨時表中的資料就還存在,而當你退出當前 session 的時候,臨時表中的資料就全部沒有了,當然這個時候你如果以另外一 個 session 登陸的時候是看不到另外乙個 session 中插入到臨時表中的資料的。即兩個不同的 session 所插入的資料是互不相干的。當某乙個 session 退出之後臨時表中的資料就被截斷( truncate table ,即資料清空)了。會話級的臨時表建立方法:

create global temporary table table_name

(col1 type1,col2 type2...) on commit preserve rows ;

舉例:create global temporary table student

(stu_id number(5),

class_id  number(5),

stu_name varchar2(8),

stu_memo varchar2(200)) on commit preserve rows ;

2 ) 事務級臨時表是指該臨時表與事務相關,當進行事務提交或者事務回滾的時候,臨時表中的資料將自行被截斷,其他的內容和會話級的臨時表的一致(包括退出 session 的時候,事務級的臨時表也會被自動截斷)。事務級臨時表的建立方法:

create global temporary table table_name

(col1 type1,col2 type2...) on commit delete rows ;

舉例:create global temporary table classes

(class_id number(5),

class_name varchar2(8),

class_memo varchar2(200)) on commit delete rows ;

3 ) 兩中型別臨時表的區別

會話級臨時表採用 on commit preserve rows ;而事務級則採用 on commit delete rows ;用法上,會話級別只有當會話結束臨時表中的資料才會被截斷,而且事務級臨時表則不管是 commit 、 rollback 或者是會話結束,臨時表中 的資料都將被截斷

4 )什麼時候使用臨時表

1 )、當某乙個 sql 語句關聯的表在 2 張及以上,並且和一些小表關聯。可以採用將大表進行分拆並且得到比較小的結果集合存放在臨時表中

2 )、程式執行過程中可能需要存放一些臨時的資料,這些資料在整個程式的會話過程中都需要用的等等。

sqlserver 臨時表使用方法

建立臨時表 create procedure sp a try tblname varchar 255 表名 strgetfields varchar 1000 需要返回的列 as declare strsql nvarchar 4000 主語句 declare strtmp varchar 110...

Mysql中的臨時表使用方法講解

當工作在非常大的表上時,你可能偶爾需要執行很多查詢獲得乙個大量資料的小的子集,不是對整個表執行這些查詢,而是讓mysql每次找出所需的少數記錄,將記錄選擇到乙個臨時表可能更快些,然後多這些表執行查詢。建立臨時表很容易,給正常的create table語句加上temporary關鍵字 create t...

臨時表使用

臨時表語法 會話型的,會話結束資料清空 create global temporary table test tmp id number,name varchar2 10 on commit preserve rows 事務型的,事務結束資料清空 create global temporary ta...