Trafodion 临时表

关系型数据库几乎都有临时表的概念,一般语法为CREATE TEMP/TEMPORARY TABLE …,Trafodion自然也有临时表,其语法为CREATE VOLATILE TABLE …。关于详细的Trafodion建表语句,可参考官方文档: http://trafodion.incubator.apache.org/docs/sql_reference/index.html#create_table_statement

本文在此简单介绍Trafodion临时表的相关事项,仅供参照~

1 语法

CREATE VOLATILE TABLE ...

2 定义
指定一个可变表,该表仅存在于创建表会话期间。会话结束时,该表自动删除。

3 例子(在Session1创建的临时表,在Session2中不存在)

--Session 1
SQL>create volatile table temp_table ( a int, b char(10));

--- SQL operation complete.

SQL>insert into temp_table values(1,'ABC');

--- 1 row(s) inserted.

SQL>select * from temp_table;

A           B
----------- ----------
          1 ABC

--- 1 row(s) selected.

SQL>showddl temp_table;


CREATE VOLATILE TABLE TEMP_TABLE
  (
    A                                INT DEFAULT NULL NOT SERIALIZED
  , B                                CHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT DEFAULT NULL NOT SERIALIZED
  )
  STORE BY (A ASC)
 ATTRIBUTES ALIGNED FORMAT
;

--- SQL operation complete.

SQL>exit

--Session 2
SQL>select * from temp_table;

*** ERROR[4082] Object TRAFODION.SEABASE.TEMP_TABLE does not exist or is inaccessible. [2017-02-09 10:48:29]

4 注意事项
(1)临时表与会话紧密相联,且在多个并发会话中唯一,因此多个会话可以同时使用相同的临时表名。
(2)临时表支持创建索引。
(3)临时表由系统进行分区,默认值是4个分区。
(4)临时表统计信息不会自动更新,需要手动更新。
(5)不支持ALTER,创建视图,User约束。

你可能感兴趣的:(Trafodion 临时表)