2011-02-16 28 views

回答

22

它們可以基於SESSION(數據存在提交但不是斷開/重新連接)。它們也可以是基於TRANSACTION的(數據在提交後消失)。

這將創建一個基於事務臨時表:

create global temporary table temp_table_transaction on commit delete rows ... 

這將創建一個基於會話的臨時表:

create global temporary table temp_table_transaction on commit preserve rows ... 
13

當你創建一個temporary table你的數據持久性有two options

  • ON COMMIT DELETE ROWS(默認)和
  • ON COMMIT PRESERVE ROWS

如果不指定永久性條款,或指定ON COMMIT DELETE ROWS ,表中的數據將是特定於事務的(在提交或回滾時它將被刪除)。

如果您指定ON COMMIT PRESERVE ROWS,則數據將一直保留到會話結束。

+0

** ON COMMIT **只適用於** DECLARE ** GLOBAL TEMPORAY TABLE – Stavr00 2015-06-02 17:39:13

5

如果表與「關於承諾保護行」創建則數據將被保留直到本屆會議結束。如果它是用「on commit delete rows」創建的,那麼它將一直保留到下一次提交或回滾。