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中的数据
![](http://img.blog.itpub.net/blog/attachment/201504/6/29840459_14282921746918.png?x-oss-process=style/bb)
4:commit之后
此时的tmp_transaciton记录已经消失,tmp_session记录未消失
5:停止会话之后
![](http://img.blog.itpub.net/blog/attachment/201504/6/29840459_142829217407Ar.png?x-oss-process=style/bb)
此时tmp_session与tmp_transaction中的内容都消失
由此可以得出结论:
on commit delete rows事务完成,临时表中的数据就会消失,
on commit preserve rows会话结束,临时表中的数据就会消失。
注意:创建了临时表之后,对于临时表的定义是永久的存放在数
据库中的
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29840459/viewspace-1509333/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29840459/viewspace-1509333/