sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL:SQL skript pro získání seznamu všech tabulek, které mají konkrétní sloupec jako cizí klíč

SELECT
    r.table_name
FROM information_schema.constraint_column_usage       u
INNER JOIN information_schema.referential_constraints fk
           ON u.constraint_catalog = fk.unique_constraint_catalog
               AND u.constraint_schema = fk.unique_constraint_schema
               AND u.constraint_name = fk.unique_constraint_name
INNER JOIN information_schema.key_column_usage        r
           ON r.constraint_catalog = fk.constraint_catalog
               AND r.constraint_schema = fk.constraint_schema
               AND r.constraint_name = fk.constraint_name
WHERE
    u.column_name = 'id' AND
    u.table_catalog = 'db_name' AND
    u.table_schema = 'public' AND
    u.table_name = 'table_a'

To používá úplný triplet katalog/schéma/název k identifikaci tabulky db ze všech 3 zobrazení information_schema. Podle potřeby můžete vypustit jeden nebo dva.

Dotaz uvádí všechny tabulky, které mají omezení cizího klíče proti sloupci 'a' v tabulce 'd'



  1. MySQL - Výběr sloupce, který není ve skupině

  2. Jak postupovat při ochraně souborů před neoprávněným stahováním

  3. Náš nový zpravodaj SQLPerformance.com

  4. ajax datová odpověď vždy 0 v php mysql