Php 将pg_查询结果存储在表中
是否可以将查询结果存储在表中 例如,我目前在php中使用以下方法运行查询: 然后我使用pg_fetch_row访问结果并将其返回到web浏览器。但是,我也希望将结果存储在一个新表中。我知道我可以运行相同的查询两次,因此我还可以:Php 将pg_查询结果存储在表中,php,sql,postgresql,Php,Sql,Postgresql,是否可以将查询结果存储在表中 例如,我目前在php中使用以下方法运行查询: 然后我使用pg_fetch_row访问结果并将其返回到web浏览器。但是,我也希望将结果存储在一个新表中。我知道我可以运行相同的查询两次,因此我还可以: $sql_2 = "CREATE newtable AS SELECT id FROM mytable"; $query = pg_query($connection, $sql_2); 我很好奇是否有一种更有效的方法来组织我的查询,这样我既可以访问结果,又可以通过一
$sql_2 = "CREATE newtable AS SELECT id FROM mytable";
$query = pg_query($connection, $sql_2);
我很好奇是否有一种更有效的方法来组织我的查询,这样我既可以访问结果,又可以通过一个查询将结果插入到表中。不幸的是,CREATE table命令似乎不接受RETURNING子句,因此不允许该命令也返回结果。因此,您可能需要执行两个查询
您可以先交换查询以创建新表,然后通过从新表中选择来获取结果。访问新创建的表可能比两次执行初始查询要快一些,因为postgres不需要查看任何不相关的数据。这还可以保证在两个位置显示相同的结果。不幸的是,CREATE TABLE命令似乎不接受RETURNING子句,因此不允许该命令同时返回结果。因此,您可能需要执行两个查询
您可以先交换查询以创建新表,然后通过从新表中选择来获取结果。访问新创建的表可能比两次执行初始查询要快一些,因为postgres不需要查看任何不相关的数据。这还可以保证在两个位置都显示相同的结果。对新创建的表进行seqscan几乎是免费的。可能有一些提示位设置,但仅此而已。我真的不明白在一个查询中完成所有操作的意义。在新创建的表上执行seqscan几乎是免费的。可能有一些提示位设置,但仅此而已。我真的不认为在一个查询中完成所有任务有什么意义。
$sql_2 = "CREATE newtable AS SELECT id FROM mytable";
$query = pg_query($connection, $sql_2);