Обсуждение: how to make table inherits another ?
Hi there,
is't possible to make table to be inherited from another table in case
both tables already exist. I tried to insert record to pg_inherits,
but it doesn't helped.
openfts=# select * from pg_inherits; inhrelid | inhparent | inhseqno
----------+-----------+---------- 2617283 | 2417279 | 1
did I miss something ?
Regards, Oleg
_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83
You specify the inheritance on the creation of the child table. See CREATE TABLE --elein On Wed, Feb 16, 2005 at 11:48:54PM +0300, Oleg Bartunov wrote: > Hi there, > > is't possible to make table to be inherited from another table in case > both tables already exist. I tried to insert record to pg_inherits, > but it doesn't helped. > > openfts=# select * from pg_inherits; > inhrelid | inhparent | inhseqno > ----------+-----------+---------- > 2617283 | 2417279 | 1 > > did I miss something ? > > Regards, > Oleg > _____________________________________________________________ > Oleg Bartunov, sci.researcher, hostmaster of AstroNet, > Sternberg Astronomical Institute, Moscow University (Russia) > Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ > phone: +007(095)939-16-83, +007(095)939-23-83 > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly >
On Wed, 16 Feb 2005, elein wrote: > You specify the inheritance on the creation of the child table. > See CREATE TABLE I know this. I need to create inheritance for already created tables. There is no way to do this using alter table, so I tried to define it by hand :) > > --elein > > On Wed, Feb 16, 2005 at 11:48:54PM +0300, Oleg Bartunov wrote: >> Hi there, >> >> is't possible to make table to be inherited from another table in case >> both tables already exist. I tried to insert record to pg_inherits, >> but it doesn't helped. >> >> openfts=# select * from pg_inherits; >> inhrelid | inhparent | inhseqno >> ----------+-----------+---------- >> 2617283 | 2417279 | 1 >> >> did I miss something ? >> >> Regards, >> Oleg >> _____________________________________________________________ >> Oleg Bartunov, sci.researcher, hostmaster of AstroNet, >> Sternberg Astronomical Institute, Moscow University (Russia) >> Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ >> phone: +007(095)939-16-83, +007(095)939-23-83 >> >> ---------------------------(end of broadcast)--------------------------- >> TIP 3: if posting/reading through Usenet, please send an appropriate >> subscribe-nomail command to majordomo@postgresql.org so that your >> message can get through to the mailing list cleanly >> > Regards, Oleg _____________________________________________________________ Oleg Bartunov, sci.researcher, hostmaster of AstroNet, Sternberg Astronomical Institute, Moscow University (Russia) Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ phone: +007(095)939-16-83, +007(095)939-23-83
Oleg Bartunov <oleg@sai.msu.su> writes:
> I know this. I need to create inheritance for already created tables.
> There is no way to do this using alter table, so I tried to
> define it by hand :)
Did you remember to set relhassubclass for the parent table?
AFAIR, all that you really need are that and the pg_inherits row.
It'd be a good idea to install a pg_depend entry, and to modify the
child's pg_attribute rows to show the columns as inherited (attislocal
and attinhcount) but I believe the latter would only bite you if you
tried to do ALTER commands on the tables later.
regards, tom lane
On Wed, 16 Feb 2005, Tom Lane wrote:
> Oleg Bartunov <oleg@sai.msu.su> writes:
>> I know this. I need to create inheritance for already created tables.
>> There is no way to do this using alter table, so I tried to
>> define it by hand :)
>
> Did you remember to set relhassubclass for the parent table?
> AFAIR, all that you really need are that and the pg_inherits row.
Aha, that works. Thanks, Tom.
>
> It'd be a good idea to install a pg_depend entry, and to modify the
> child's pg_attribute rows to show the columns as inherited (attislocal
> and attinhcount) but I believe the latter would only bite you if you
> tried to do ALTER commands on the tables later.
>
I'll save this info.
> regards, tom lane
>
Regards, Oleg
_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83