Postgres:我是否需要在每个会话中创建临时表?

时间:2013-07-24 05:38:37

标签: database postgresql temp-tables

在我的应用程序中,我需要创建一些临时表。我是否需要在每个会话中执行SQL来创建临时表,否则我可以手动运行一次SQL,并且可以在每个会话中使用这些临时表吗?

1 个答案:

答案 0 :(得分:4)

来自fine manual

  

临时表

     

虽然CREATE TEMPORARY TABLE的语法类似于SQL标准的语法,但效果却不尽相同。在标准中,临时表只定义一次,并在每个需要它们的会话中自动存在(以空内容开始)。相反,PostgreSQL要求每个会话为要使用的每个临时表发出自己的CREATE TEMPORARY TABLE命令。这允许不同的会话为不同的目的使用相同的临时表名,而标准的方法约束给定临时表名的所有实例具有相同的表结构。

因此临时表是每个会话的本地表,每个会话都需要自己的CREATE TEMPORARY TABLE,并且临时表在每个会话中都会有所不同,即使它们具有相同的名称。