Обсуждение: Create Table xtest (like xtype)

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

Create Table xtest (like xtype)

От
TJ O'Donnell
Дата:
I know I  can create a table using names and types from an existing
table.

Create Table xtable (a Integer, b Text);
Create Table xtest (Like xtable);
This works just fine.

I want to create a table having the same column names and types as
an existing new datatype.

Create Type xtype As (a Integer, b Text);
Create Table xtest (Like xtype);
ERROR:  "xtype" is a composite type
Is that possible some other way?

TJ O'Donnell
http://www.gnova.com


Re: Create Table xtest (like xtype)

От
Tom Lane
Дата:
"TJ O'Donnell" <tjo@acm.org> writes:
> Create Type xtype As (a Integer, b Text);
> Create Table xtest (Like xtype);
> ERROR:  "xtype" is a composite type

Hmmm ... as you see, that's disallowed, but offhand it seems like it
wouldn't be very hard to allow it.  It might be as simple as relaxing
the relkind check.
        regards, tom lane


Re: Create Table xtest (like xtype)

От
"TJ O'Donnell"
Дата:
Considering how related Created Types and
Tables are (at least conceptually)
it seems like a good idea to allow
Created Types to be used in the Like clause.
At least it would help me and make maintaining
my db easier and cleaner.

TJ O'Donnell
http://www.gnova.com/

> "TJ O'Donnell" <tjo@acm.org> writes:
>> Create Type xtype As (a Integer, b Text);
>> Create Table xtest (Like xtype);
>> ERROR:  "xtype" is a composite type
>
> Hmmm ... as you see, that's disallowed, but offhand it seems like it
> wouldn't be very hard to allow it.  It might be as simple as relaxing
> the relkind check.
>
>             regards, tom lane
>