1

是否可以将查询结果存储在表中?

例如,我目前使用以下方法运行查询php

$sql = "SELECT id FROM mytable";
$query = pg_query($connection, $sql);

然后我pg_fetch_row()用来访问结果并将其返回给网络浏览器。但是,我还想将结果存储在一个新表中。我知道我可以两次运行相同的查询,所以我也会:

$sql_2 = "CREATE newtable AS SELECT id FROM mytable";
$query = pg_query($connection, $sql_2);

我很好奇是否有一种更有效的方式来构建我的查询,以便我既可以访问结果,又可以通过一个查询将结果插入到表中。

4

1 回答 1

4

不幸的是,该CREATE TABLE命令似乎不接受RETURNING子句,因此不允许仅让该命令也返回结果。所以你可能需要做两个查询。

您可以先交换查询以创建新表,然后通过选择该新表来获取结果。访问新创建的表可能比执行两次初始查询要快一些,因为 postgres 不需要查看任何不相关的数据。这也将保证相同的结果出现在两个地方。

于 2012-10-30T21:34:07.863 回答