临时表的特点及分类

本文介绍了Oracle数据库中的临时表,包括其特点、分类以及如何创建事务级别和会话级别的临时表。临时表仅在用户向表中添加数据时分配存储空间,并且存储在临时表空间中。文章还详细解释了两种不同类型的临时表:事务级别的临时表和会话级别的临时表。

1)特点

  • 在Oracle中,临时表是“静态”的,它与普通的数据表一言,只需要一次创建,其结构从创建到删除的整个期间都是有效的。
  • 临时表只有在用户向表中添加数据时,Oracle才会为其分配存储空间。
  • 为临时表分配的空间来自临时表空间,这避免了与永久对象的数据争用存储空间。
  • 在临时表中存储数据是以事务或回话为基础的。当用户当前的事务结束或会话终止时,临时表占用的存储空间将被释放,存储的数据也随着丢失。
  • 与对表一样,用户可以在临时表上建立索引、视图、触发器等(这些索引、视图等也是临时的,只对当前会话或事务有效)。
2)分类

  • 事务级别临时表
临时表中的数据只在事务生命周期中存在,当一个事务结束(提交或者回滚事务),Oracle自动清除临时表的数据;

create global temporary table table_name(column_name data_type,[column_name data_type,...]) on commit delete rows;

创建临时表时,如果不指定on commit子句,则创建的临时表默认为事务级别的临时表;

向事务级别的临时表中添加数据后,断开重连接数据库,表中的数据也会被清除;

  • 会话级别临时表
会话级别的临时表中的数据,当用户退出会话结束时,Oracle自动清除该临时表中的数据;

create golbal temporary table table_name(column_name data_type,[column_name data_type,...]) on commit preserve rows;

会话级别的临时表,在执行事务提交后,表中的数据不会被清除,只有当前会话结束后才会被清除;

向会话级别的临时表中添加数据后,断开重连接数据库,表中的数据也会被清除;

事务级别的临时表,在执行事务提交或者结束当前会话时,表中的数据都会被清除;

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值