Thread: 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