数据仓库服务 GAUSSDB(DWS)-CREATE TABLE:TEMPORARY | TEMP参数使用说明

时间:2025-04-29 08:47:00

TEMPORARY | TEMP参数使用说明

  • LOCAL/VOLATILE临时表通过每个会话独立的以pg_temp开头的schema来保证只对当前会话可见,因此,不建议用户在日常操作中手动删除以pg_temp,pg_toast_temp开头的schema。
  • 如果建表时不指定TEMPORARY/TEMP关键字,而指定表的schema为当前会话的pg_temp_开头的schema,则此表会被创建为临时表。
  • LOCAL临时表的所有相关元数据同普通表类似,都存储在系统表内,而VOLATILE临时表会将除schema外的相关表结构元数据直接存储在内存中。所以相对本地临时表而言,VOLATILE临时表有更多约束:
    • 当前CN或DN重启之后,对应实例上的内存数据丢失,相关volatile临时表会失效。
    • VOLATILE临时表当前不支持ALTER/GRANT等修改表结构相关操作。
    • VOLATILE临时表和LOCAL临时表共用一种临时schema,所以在同一session中,VOLATILE临时表和LOCAL临时表不能存在同名表。
    • VOLATILE临时表信息不存储在系统表内,所以无法通过对系统表执行DML语句查询到VOLATILE相关元数据。
    • VOLATILE临时表仅支持普通的行存、列存表,不支持delta表、时序表、冷热表。
    • 不支持基于VOLATILE临时表创建视图。
    • 不支持创建临时表时指定tablespace(VOLATILE临时表默认tablespace均为pg_volatile)。
    • 创建VOLATILE临时表时不支持指定约束:CHECK约束、UNIQUE约束、主键约束、触发器约束、EXCLUDE约束、PARTIAL CLUSTER约束。
  • GLOBAL临时表的所有相关元数据同普通表类似,都存储在系统表内。
    • GLOBAL临时表与LOCAL临时表不同的是,会话退出时元数据不会删除,但会话的数据会删除。不同会话的数据独立,但共享同一份GLOBAL临时表的元数据。
    • 全局临时表的schema与普通表类似,不是以pg_temp开头的schema,但与LOCAL/VOLATILE临时表不同,所以可以与LOCAL/VOLATILE临时表同名。
    • 全局临时表仅支持普通的行存、列存表,不支持delta表、时序表、冷热表。
    • 不支持操作其他逻辑集群的全局临时表。
support.huaweicloud.com/sqlreference-910-dws/dws_06_0177.html
提示

您即将访问非华为云网站,请注意账号财产安全