我正在 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 站点我得到了一个信息,认为 create 是最好的,因为它是持久的,允许所有用户会话访问相同的表定义,而无需在启动时声明它以及更多优势。
链接:http ://www.ibm.com/developerworks/data/library/techarticle/dm-0912globaltemptable/
我在使用 create over declare 时遇到了一些疑问:
使用时找不到
Replace
关键字CREATE GLOBAL TEMPORARY TABLE
。考虑一种情况,打开连接并执行存储过程,
在该存储过程中创建全局临时表,并在该存储过程中调用另一个存储过程,该过程再次具有same
创建临时表语句..在这种情况下会发生什么。 . 由于两个表 naes 相同并且在单个连接中,它是否会引发任何错误?声明有会话并创建没有?这与持久性有关吗?
在性能方面哪个更好?声明温度还是创建温度?
建议一些场景以最好地使用声明/创建!