2011-02-16 86 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”创建的,那么它将一直保留到下一次提交或回滚。