1

クエリの結果をテーブルに格納することはできますか?

たとえば、私は現在、 で次のアプローチを使用してクエリを実行していますphp

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

次に、 を使用pg_fetch_row()して結果にアクセスし、それを Web ブラウザーに返します。ただし、結果も新しいテーブルに保存したいと思います。同じクエリを 2 回実行できることを理解しているので、次のようにもなります。

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

1 つのクエリだけで結果にアクセスし、結果をテーブルに挿入できるように、クエリを構造化するより効率的な方法があるかどうかに興味がありました。

4

1 に答える 1

4

残念ながら、CREATE TABLEコマンドは句を受け入れないように見えるため、RETURNINGそのコマンドが結果を返すだけでは許可されません。そのため、おそらく 2 つのクエリを実行する必要があります。

最初にクエリを交換して新しいテーブルを作成し、次にその新しいテーブルから選択して結果を取得できます。新しく作成されたテーブルへのアクセスは、postgres が無関係なデータを調べる必要がないため、最初のクエリを 2 回実行するよりも少し高速になる場合があります。これにより、両方の場所で同じ結果が表示されることも保証されます。

于 2012-10-30T21:34:07.863 に答える