【发布时间】:2023-04-08 06:00:01
【问题描述】:
我正在 DB2 中创建 GLOBAL TEMPORARY TABLE。当我上网时,我有两种创建方式
1. 声明
2. 创建。
1. DECLARE GLOBAL TEMPORARY TABLE SESSION.TEMP_EMP
(EMPNO CHAR(6) NOT NULL,
SALARY DECIMAL(9, 2),
BONUS DECIMAL(9, 2),
COMM DECIMAL(9, 2)) WITH REPLACE ON COMMIT PRESERVE ROWS ;
2. CREATE GLOBAL TEMPORARY TABLE TMPDEPT
(TMPDEPTNO CHAR(3) NOT NULL,
TMPDEPTNAME VARCHAR(36) NOT NULL,
TMPMGRNO CHAR(6),
TMPLOCATION CHAR(16) ) ON COMMIT PRESERVE ROWS ;
从 IBM 站点我得到一个信息,创建是最好的,因为它是持久的,允许所有用户会话访问相同的表定义,而无需在启动时声明它以及更多优势。
链接:http://www.ibm.com/developerworks/data/library/techarticle/dm-0912globaltemptable/
我在使用 create over declare 时遇到了一些疑问:
我在使用
CREATE GLOBAL TEMPORARY TABLE时找不到Replace关键字。考虑一种情况, 正在打开连接并执行存储过程,
在该存储过程中创建全局临时表 并在该存储过程中调用另一个存储过程 再次有sameCreate Temp table 语句..在这种情况下会发生什么.. 由于两个表 naes 相同并且在单个连接中,它是否会引发任何错误?声明有会话而创建没有??这与持久性有关吗?
在性能方面哪个更好?声明温度还是创建温度?
建议一些场景,以便最好地使用声明/创建!!
【问题讨论】:
标签: performance stored-procedures db2 temp-tables