ITPub博客

首页 > 数据库 > Oracle > 关于on commit preserve rows与on commit delete rows的测试

关于on commit preserve rows与on commit delete rows的测试

Oracle 作者:hxsmomo 时间:2016-12-13 08:52:12 0 删除 编辑

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会话结束,临时表中的数据就会消失。

注意:创建了临时表之后,对于临时表的定义是永久的存放在数

据库中的


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31374514/viewspace-2130334/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2016-07-15

  • 博文量
    840
  • 访问量
    42908