【问题标题】:problem with TEMPORARY TABLE临时表的问题
【发布时间】:2011-03-03 21:08:18
【问题描述】:

在 PHP 中我这样做:

1.) 创建一个临时表:CREATE TEMP TABLE new_table AS SELECT .... FROM ...;

2.) 之后我想使用这个表来创建一个形状文件:shell_exec ("pgsql2shp .... -u username -P password ...);

这两件事单独起作用,但是通过创建一个临时表,然后在 pgsql2shp 中使用该表不起作用。我认为这是因为临时表持续时间到会话结束。但是要创建 shp 文件,我需要使用用户名和密码,这意味着新会话开始并且临时表在我用于形状创建之前被删除。

任何提示如何解决它?

谢谢!

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    是的,临时表在会话结束或事务结束时被删除。一般来说,您不能将它们传递给另一个进程。

    创建一个真实的表,通过在其上粘贴一个 id 为其指定一个唯一的名称,并在运行形状创建后删除该表。

    如果您无法更改 pgsql2shp 程序,您可以将其包装在脚本中并调用它。但是,您应该能够将表的名称传递给 pgsql2shp 程序。

    不能在 pgsql2shp 程序中运行查询吗?

    作为替代方案,/tmp 文件夹中不起眼的平面文件也可以很好地工作。

    【讨论】:

      猜你喜欢
      • 2020-11-30
      • 2020-09-24
      • 1970-01-01
      • 2014-01-11
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      • 2011-09-29
      相关资源
      最近更新 更多