You should use alter table XX NO INHERIT parent_table;

2016-12-22 9:49 GMT+01:00 Francisco Olarte <fola...@peoplecall.com>:

> Edmundo:
>
> On Wed, Dec 21, 2016 at 11:36 PM, Edmundo Robles <edmu...@sw-argos.com>
> wrote:
> > i need  disable  inheritance  from many tables in a query like
> > "delete from pg_inherits where inhparent=20473"  instead alter table ...
> > but  is safe?   which is the risk for  database if  i  delete it?
>
> Dangers of touching the catalog directly have already been pointed by
> TL, along with the question of why isn't normal ALTER TABLE ok.
>
> If it is because there are a lot of childs, I would like to point a
> simple script ( if you are fluent in any scripting language, or even
> in SQL ) can be used to automatically generate a bunch of alter table
> commands. Even a simple text editor will do ( turn your query above
> into something generating a bunch of table names, edit it ). Or just
> try something like ( beware, untested )
>
> with childs as (select relname from pg_class, pg_inherits where
> pg_class.oid=inhrelid and inhparent='20473)
> SELECT 'ALTER TABLE ' || relname || ' rest of alter table command;'
> from childs ;
>
> And feed the result back to the server using your favorite tool (
> quoting maybe needed, schema names may be needed, YMMV ).
>
> Francisco Olarte.
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>

Reply via email to