0

我在 Postgres Sql 中面临一个关于全局临时表的问题。如果两个程序:

  1. A() 有一个临时表说 temp(id, name)
  2. B() 有一个临时表说 temp(id, name, address)

然后如果首先调用过程 A,然后调用过程 B,则临时表保持结构,即过程 A 中定义的 temp(id, name),反之亦然,过程 B 中定义的列“地址”为未找到。

请帮我找到解决办法???

4

2 回答 2

1

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

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

于 2013-05-22T09:33:47.120 回答
0

基本上你有两个选择。

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

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

于 2013-05-29T07:45:38.093 回答