Create Table Question...

Started by Jerry LeVanabout 15 years ago2 messagesgeneral
Jump to latest
#1Jerry LeVan
jerry.levan@gmail.com

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

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jerry LeVan (#1)
Re: Create Table Question...

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