zjistit počet oddílů v databázi postgresql

hlasů
2

Jaký je nejúčinnější způsob, jak získat počet oddílů vytvořených v databázi? Já používám * postgresq * l API pro C ++.

Položena 26/12/2011 v 06:38
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
8

To je, jak si můžete vybrat všechny názvy oddílů tabulky:

SELECT
    nmsp_parent.nspname AS parent_schema,
    parent.relname      AS parent,
    nmsp_child.nspname  AS child,
    child.relname       AS child_schema
FROM pg_inherits
    JOIN pg_class parent        ON pg_inherits.inhparent = parent.oid
    JOIN pg_class child         ON pg_inherits.inhrelid   = child.oid
    JOIN pg_namespace nmsp_parent   ON nmsp_parent.oid  = parent.relnamespace
    JOIN pg_namespace nmsp_child    ON nmsp_child.oid   = child.relnamespace

To může být používáno počítat také:

SELECT
    nmsp_parent.nspname     AS parent_schema,
    parent.relname          AS parent,
    COUNT(*)
FROM pg_inherits
    JOIN pg_class parent        ON pg_inherits.inhparent = parent.oid
    JOIN pg_class child     ON pg_inherits.inhrelid   = child.oid
    JOIN pg_namespace nmsp_parent   ON nmsp_parent.oid  = parent.relnamespace
    JOIN pg_namespace nmsp_child    ON nmsp_child.oid   = child.relnamespace
GROUP BY
    parent_schema,
    parent;
Odpovězeno 26/12/2011 v 07:19
zdroj uživatelem

hlasů
0

Tato otázka je starý. Ale nová otázka dba.SE to reference, a cítím nucen přidat jednodušší řešení.

Podle otázku, na ...

získání počtu oddílů vytvořených v databázi:

Používání dědictví a pro konkrétní nadřazené tabulky, předpokládám, že:

SELECT count(*) AS partitions
FROM   pg_inherits i
WHERE  i.inhparent = 'my_schema.my_parent_tbl'::regclass;

Podrobnější informace najdete v souvisejícím odpověď na dba.SE:
Získat všechny názvy oddílů na stůl

Odpovězeno 25/04/2014 v 15:35
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more