java中db2临时表的运用

java中db2临时表的运用

  • 创建DB2临时表命令:Declare Global Temporary Table(如下), 并且需要创建在用户临时表空间上;
declare global temporary table TMP(					
		aaaa				varchar(20)		not null,	
		bbbb				bigint			not null,	
		cccc				varchar(32)		not null	
)														
on commit preserve rows									
not logged												
  • DB2在数据库创建临时表时, 并不创建临时表空间, 如果需要使用临时表, 则需要用户在创建临时表之前创建用户临时表空间;

  • 临时表的模式为SESSION(会话临时表),且在会话之间是隔离的。当会话结束时,临时表的数据被删除。对临时表的定义不会在SYSCAT.TABLES中出现 .

  • 在Commit命令执行时, DB2临时表中的所有记录将被删除; 这可以通过创建临时表时指定不同的参数来控制;

  • 运行ROLLBACK命令时, 用户临时表将被删除;

上例创建临时表时使用【ON COMMIT PRESERVE ROWS】语法,该语法表示了数据在COMMIT之后临时表的一种状态。当会话终止时,表行和临时表描述均会被删除。 有如下选项,可控制commit后临时表的状态:

ON COMMIT PRESERVE ROWS

  1. 执行COMMIT操作时,当提交数据之后(COMMIT)、关闭事务之前(close)手动执行DELETE或TRUNCATE之前,临时表中的数据一直存在,并且只有当前会话可以看到,其他会话看不到。
  2. 在执行 ROLLBACK(或 ROLLBACK to SAVEPOINT)操作时,保留表中的所有行。

ON COMMIT DELETE ROWS

  1. 执行 COMMIT 操作时,如果表上没有打开游标,这时就会删除表中的所有行。
  2. 在执行 ROLLBACK(或 ROLLBACK to SAVEPOINT)操作时,语句指定所创建的临时表是事务级临时表,当提交数据之前(commit)ROLLBACK之前,这些数据一直存在,当事务提交之后,表中数据自动清除。(默认设置)

注意:
1、一个会话(SESSION)可以包含多个事务
2、以上所说commit操作是指数据提交并不是指事务关闭;
close() 是指事务关闭






在此跟大家分享一下 DB2 基本表与 DB2 临时表之间的重要差别
DB2 基本表与 DB2 临时表之间的重要差别

以上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔王-T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值