【问题标题】:Postgres: Do I need to create temporary tables in each session?Postgres:我需要在每个会话中创建临时表吗?
【发布时间】:2013-07-23 10:56:48
【问题描述】:

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

【问题讨论】:

    标签: database postgresql temp-tables


    【解决方案1】:

    来自fine manual

    临时表

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

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

    【讨论】:

    • 即使我已经测试过会话中不存在表,除非这些表不是在会话中创建的。 :(
    • @Vishal 双重否定太多。我听不懂你在说什么。
    • 澄清:我已经测试了临时表只有在相应会话中创建这些表时才能存在
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 2020-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    相关资源
    最近更新 更多