文档,
虽然
CREATE TEMPORARY TABLE
的语法与SQL标准类似,但效果并不一样。在标准中,临时表仅定义一次,并自动存在于需要它们的每个会话中(从空内容开始)。相反,PostgreSQL 要求每个会话为要使用的每个临时表发出自己的CREATE TEMPORARY TABLE
命令。这允许不同的会话将相同的临时表名称用于不同的目的,而标准的方法限制给定临时表名称的所有实例具有相同的表结构。
自动真空守护进程无法访问,因此无法真空或分析临时表。因此,应通过会话 SQL 命令执行适当的清理和分析操作。例如,如果要在复杂查询中使用临时表,则明智的做法是在填充临时表后对其运行 ANALYZE。
可以选择在 TEMPORARY 或 TEMP 之前写入 GLOBAL 或 LOCAL。目前这在 PostgreSQL 中没有什么区别,已被弃用