Oracle、SqlServer、MySql临时表小结

本文介绍了Oracle、MySQL和SqlServer三种数据库管理系统中临时表的创建与使用方式。Oracle临时表分为会话级和事务级;MySQL临时表随会话结束而自动删除,并支持HEAP存储方式;SqlServer临时表则区分为本地与全局两种类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1、Oracle临时表
Oracle临时表分为两种,且使用前必须先创建好结构。
会话级:
会话间数据不能共享;数据在当前会话有效(无视事物),只有断开链接才会删除数据;断开时只清空数据不删除表结构;
create global temporary table temp_tbl(col_a varchar2(30))
on commit preserve rows;
事务级:
会话间数据不能共享;数据以事务为分界点,事务提交、会滚都会删除数据;断开链接也会删除数据;断开时只清空数据不删除表结构;
create global temporary table temp_tbl(col_a varchar2(30))
on commit delete rows;

关于Oracle临时表详细使用请参考我的文章:http://sosuny.iteye.com/blog/551006



2、MySql临时表
临时表只在会话链接期间存在,断开链接时,将自动删除表并释放所用空间。
CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INTEGER NOT NULL
)
另外,mysql支持HEAP方式,生成的表在内存中,会比普通的临时表快一些。但因占用内容应综合考虑率使用。
CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INTEGER NOT NULL
) TYPE = HEAP


3、SqlServer临时表
分全局和本地,
本地,表名以#开头,临时表仅对当前链接可见;断开链接会删除表;
create table #table1 ...
全局,表名以##开头,创建后对任何用户可见,当所有引用该表的用户从 SQL Server 断开连接时被删除;
create table ##table1 ...

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值