TEMPORARY TABLE的问题

时间:2010-06-15 08:19:42

标签: postgresql

在PHP中我做:

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

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

Separetly这两件事情有效,但是通过创建一个临时表,之后在pgsql2shp中使用这个表是行不通的。我认为这是因为临时表持续时间是到会话结束。但是要创建shp文件,我需要使用用户名和密码,这意味着新的会话启动,临时表在我用它来创建形状之前就已经删除了。

任何提示如何解决?

谢谢!

1 个答案:

答案 0 :(得分:3)

是的,临时表在会话结束时删除,或者可选地在事务结束时删除。通常,您无法将它们传递给另一个进程。

创建一个真实的表,通过在其中添加id并在运行形状创建后删除表来为其指定一个唯一的名称。

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

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

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

相关问题