Обсуждение: Create Table Question...

Поиск
Список
Период
Сортировка

Create Table Question...

От
Jerry LeVan
Дата:
The docs ( 9.0.2) for create table asserts that a data type representing a row of
the table is automatically created.

Tain't clear to me what this means...

Here is a fragment of sql that I frequently use:
*************
insert into checks (select *
   from dblink('select * from checks where date >=''1/1/2011''')
   as (date date,
       amount numeric(9,2),
        tranid text,
       source text,
       memo text,
       status text,
       category text
      ) );
**************
The stuff after the 'as' is a description of the
rows of the table checks.

Could I shortened the above by using the automatically created row type of
the table checks?

Thanks

Jerry



Re: Create Table Question...

От
Tom Lane
Дата:
Jerry LeVan <jerry.levan@gmail.com> writes:
> Here is a fragment of sql that I frequently use:
> *************
> insert into checks (select *
>    from dblink('select * from checks where date >=''1/1/2011''')
>    as (date date,
>        amount numeric(9,2),
>         tranid text,
>        source text,
>        memo text,
>        status text,
>        category text
>       ) );
> **************
> The stuff after the 'as' is a description of the
> rows of the table checks.

> Could I shortened the above by using the automatically created row type of
> the table checks?

Unfortunately not.  It's not an unreasonable suggestion, though I'm not
sure how we'd fit it into the syntax.  Maybe we could allow casting
to resolve the output type of the function, a la

    select ... from dblink('query')::checks

            regards, tom lane