临时表的问题

Posted

技术标签:

【中文标题】临时表的问题【英文标题】: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 文件,我需要使用用户名和密码,这意味着新会话开始并且临时表在我用于形状创建之前被删除。

任何提示如何解决它?

谢谢!

【问题讨论】:

【参考方案1】:

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

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

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

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

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

【讨论】:

以上是关于临时表的问题的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 表变量和临时表的区别

获取临时表的结构(如生成 sql 脚本)并清除当前实例的临时表

关于sqlserver临时表的问题,请教高手!

临时表的问题

# 实际开发中临时表的使用

# 实际开发中临时表的使用