事务级临时表 mysql_oracle 中的临时表

临时表: 除了永久表,oracle还可以建立临时表来保存 session私有的data,这些data只存在于一个事务或者session的持续存在的期间内。 CREATE GLOBAL TEMPORARY TABLE 语句建立了一个临时表,该临时表可以是事务级别,也可以是session级别。 对于事务级别的临

临时表:

除了永久表,oracle还可以建立临时表来保存 session私有的data,这些data只存在于一个事务或者session的持续存在的期间内。

CREATE GLOBAL TEMPORARY TABLE 语句建立了一个临时表,该临时表可以是事务级别,也可以是session级别。 对于事务级别的临时表,data存在于事务的持续期间。对于session级别的临时,data存在于session的持续期间。临时表中的data 对各自的session的是私有的。每个session 只能看到并且只能修改它自己的data。dml lock 对于 临时表上的data是不需要的。lock 语句对临时表没有作用,因为每个session都有他自己的私有data。

对于在 session级别的临时表发出truncate命令,会truncate掉属于那个session的data。truncate命令不会truncate掉 使用相同表名的其他的session的数据。

临时表上的dml语句不会生成redo。但是,undo logs for the data and redo logs for the undo logs 是生成的。在session终止(user logs off 或者 session 异常终止)时,临时表中的数据会自动drop掉。

可以在临时表上使用create index语句建立索引。建立在临时表上的索引也是临时的,索引中的data 与 临时表中的data 有相同的 session 或者 事务范围。

可以建立访问临时表和永久表的view。也可以在临时表上建立触发器。

oracle 实用工具(注:exp等)可以导出和导入 临时表的定义,但是,即使你使用rows子句,临时表中的data rows也是不会被导出的。类似的,你可以复制临时表的定义,但是不能复制表中的data。

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值