關於on commit preserve rows與on commit delete rows的測試


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會話結束,臨時表中的數據就會消失。

注意:創建了臨時表之后,對於臨時表的定義是永久的存放在數

據庫中的


免責聲明!

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



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