Temporary Table 临时表的用法

    临时表(TEMPORARY TABLE)通常应用在需要定义临时集合的场合。但是,在大部分需要临时集合的时候,我们根本就不需要定义临时表。当我们在一条SQL语句中只使用一次临时集合时,我们可以使用嵌套表表达式来定义临时集合;当我们在一条SQL语句中需要多次使用同一临时集合时,我们可以使用公共表表达式;只有当我们在一个工作单元中的多条SQL语句中使用同一临时集合时,我们才需要定义临时表。


    使用须知:

    1. DB2的临时表需要用命令DeclareTemporary Table来创建, 并且需要创建在用户临时表空间上;

    2. DB2在数据库创建时, 缺省并不创建用户临时表空间, 如果需要使用临时表, 则需要用户在创建临时表之前创建用户临时表空间;

    3. 临时表的模式为SESSION,SESSION即基于会话的,且在会话之间是隔离的。当会话结束时,临时表的数据被删除,临时表被隐式卸下。对临时表的定义不会在SYSCAT.TABLES中出现 .
;

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

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


    定义举例:

    1)、定义默认的临时表,该表在commit命令执行后,定义的临时表将被删除

    DECLARE GLOBAL TEMPORARY TABLE  SESSION.EMP
   
(  
        ID VARCHAR(20),

        NAME VARCHAR(50)

    ) ON COMMIT DELETE ROWS ;

    2)、定义临时表,不计日志,且commit命令后不删除临时表

    DECLARE GLOBAL TEMPORARY TABLE  SESSION.EMP
   
(  
        ID VARCHAR(20),

        NAME VARCHAR(50)

    ) ON COMMIT PRESERVE ROWS WITH REPLACE NOT LOGGED ;





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值