Postgresql中的临时表

时间:2013-05-22 05:30:36

标签: database postgresql temp-tables procedures

我在Postgres Sql中遇到有关全局临时表的问题。如果有两个程序:

  1. 具有临时表的A()说temp(id,name)
  2. B()有临时表说temp(id,name,address)
  3. 然后如果首先调用过程A并且在该过程B被调用之后,则临时表保留结构,即过程A中定义的temp(id,name),反之亦然,并且如下定义的列“address”没有找到程序B.

    请帮我找一个解决方案???

2 个答案:

答案 0 :(得分:1)

如果您确实需要显式临时表,只需使用唯一名称创建这些表。

无论如何,常见的方法是在没有显式临时表的情况下在SQL选择中处理它,可能通过将与查询(公用表表达式)一起扩展。

答案 1 :(得分:0)

基本上你有两种选择。

首先是让你的桌子独一无二,这样他们就不会碰到同样的桌子了。如果您使用这些来存储长期特定于会话的数据,那么这将是首选。这些可以唯一命名。

第二个是你可以在同一个存储过程中创建,使用和删除表,这样一般可以保证存储过程A在启动时不存在关系temp,与存储过程B相同。