1:先分別建立兩張表
sql> CREATE GLOBAL TEMPORARY TABLE tmp_session on commit preserve rows as select * from t where 1= 0; --會話結束,臨時表中的數據就會消失
sql>CREATE GLOBAL TEMPORARY TABLE tmp_transaction on commit delete rows as select * from t where 1 = 0;-- 事務完成,臨時表中的數據就會消失
2:分別在tmp_session與tmp_transaction中插入數據
如圖:
3:查看tmp_session與tmp_transaction中的數據
4:commit之后
此時的tmp_transaciton記錄已經消失,tmp_session記錄未消失
5:停止會話之后
此時tmp_session與tmp_transaction中的內容都消失
由此可以得出結論:
on commit delete rows事務完成,臨時表中的數據就會消失。
on commit preserve rows會話結束,臨時表中的數據就會消失。
注意:創建了臨時表之后,對於臨時表的定義是永久的存放在數
據庫中的