sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL:SQL-script om een ​​lijst te krijgen van alle tabellen die een bepaalde kolom als refererende sleutel hebben

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'

Dit gebruikt de volledige catalogus/schema/naam-triplet om een ​​db-tabel te identificeren uit alle 3 information_schema-views. Je kunt er naar wens een of twee laten vallen.

De query geeft een overzicht van alle tabellen die een externe sleutelbeperking hebben voor de kolom 'a' in tabel 'd'



  1. SQL DROP DATABASE-syntaxis - weergegeven door DBMS

  2. Hoe CDC op een reeks tabellen uit te schakelen OF op alle tabellen in een database in SQL Server uit te schakelen - SQL Server-zelfstudie

  3. Een resulterende kolom in meerdere kolommen splitsen

  4. Hoekfout - ReferenceError:$modal is niet gedefinieerd