Re: create table with a CTE

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: postgresql(at)taljaren(dot)se, Pg Docs <pgsql-docs(at)lists(dot)postgresql(dot)org>
Subject: Re: create table with a CTE
Date: 2020-11-15 03:55:55
Message-ID: CAKFQuwaADUGkKrPqS1PRXZ21amSCPiYmBzH5jpbsYDUH2q_Kzg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs

On Sat, Nov 14, 2020 at 6:21 AM PG Doc comments form <noreply(at)postgresql(dot)org>
wrote:

> The following documentation comment has been logged on the website:
>
> Page: https://www.postgresql.org/docs/13/sql-createtableas.html
> Description:
>
> Hi.
> I think you should include an example on how to create a table from a query
> that uses a CTE in the query.
>

[shrug]
The obvious attempt to specify:

create table cte_tbl as
WITH cte (val) AS (select 1)
SELECT * FROM cte;

works so I'm not really sure that such an example adds valuable insight.

I suppose that adding an example, and some explanation, that one can get
update/delete output to populate the newly created table by wrapping them
in a CTE would provide the user a suggestion on how to overcome the fact
that simply writing the following doesn't work.

create table cte_update as
update other_table set value = 2
returning *;

That isn't something we make a concerted effort to accomplish but it also
isn't avoided.

David J.

In response to

Responses

Browse pgsql-docs by date

  From Date Subject
Next Message David G. Johnston 2020-11-15 04:53:28 Re: Range partitioning and overlap
Previous Message David G. Johnston 2020-11-15 03:39:09 Re: 42.6.8 trapping errors