Check if table inherits from other table in PostgreSQL

后端 未结 3 1790
南方客
南方客 2021-01-17 17:05

In PostgreSQL for these tables

CREATE TABLE cities (
    name            text,
    population      float,
    altitude        int     -- in feet
);

CREATE T         


        
3条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2021-01-17 17:24

    From Postgresql AutoDoc I found this SQL:

    SELECT parnsp.nspname AS par_schemaname
        , parcla.relname AS par_tablename
        , chlnsp.nspname AS chl_schemaname
        , chlcla.relname AS chl_tablename
     FROM pg_catalog.pg_inherits
     JOIN pg_catalog.pg_class AS chlcla ON (chlcla.oid = inhrelid)
     JOIN pg_catalog.pg_namespace AS chlnsp ON (chlnsp.oid = chlcla.relnamespace)
     JOIN pg_catalog.pg_class AS parcla ON (parcla.oid = inhparent)
     JOIN pg_catalog.pg_namespace AS parnsp ON (parnsp.oid = parcla.relnamespace)
    

    This is helpful as you can test in both directions with one query.

提交回复
热议问题