DB2 V9.7 for Linux, UNIX, and Windows

声明临时表

要在应用程序中定义临时表,请使用 DECLARE GLOBAL TEMPORARY TABLE 语句。

关于此任务

临时表(也称为用户定义的临时表)由处理数据库中的数据的应用程序使用。对数据进行处理产生的结果需要临时存储在表中。在声明临时表之前,必须存在用户临时表空间。
注: 临时表的描述并不出现在系统目录中,因此使其对于其他应用程序而言不是持久的,也不能与其他应用程序共享此表。当使用此表的应用程序终止或与数据库断开连接时,此表中的数据被删除,此表被隐式删除。
临时表不支持:
  • 用户定义的类型列
  • LONG VARCHAR 列
  • 已创建全局临时表的 XML 列

示例

   DECLARE GLOBAL TEMPORARY TABLE temptbl
      LIKE empltabl
      ON COMMIT DELETE ROWS
      NOT LOGGED
      IN usr_tbsp

此语句定义名为 temptbl 的临时表。对此表定义的列名和列描述与 empltabl 的列名和列描述完全相同。隐式定义 只包括列名、数据类型、可空性特征和列缺省值属性。未定义所有其他列属性,包括唯一约束、外键约束、触发器和索引。借助 ON COMMIT DELETE ROWS(任何 DELETE ROWS 选项),数据库管理器始终删除行,而无论是否已经以 HOLD 方式对该表打开游标。如果未打开 WITH HOLD 游标,那么数据库管理器将通过实现内部 TRUNCATE 优化 NOT LOGGED 删除,否则以每次一行的方式删除行。

在应用程序与数据库断开连接时,此表将被隐式删除。有关更多信息,请参阅 DECLARE GLOBAL TEMPORARY TABLE 语句。