sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan dokumenterer du din databasekode for at se afhængigheder mellem databaseobjekter?

Du kan faktisk indsamle nogle af disse oplysninger ved at forespørge på databasens interne "afhænger"-oplysninger. Hvis noget afhænger af en anden, tyder det på, at den bruger det. Her er et eksempel på en forespørgsel for at give dig en idé om, hvordan du krydser de to involverede strukturer:

SELECT
  c1.oid as relid,
  n1.nspname || '.' || c1.relname as relation,
  c1.relkind,
  c2.oid as relid,
  n2.nspname || '.' || c2.relname as dependency,
  c2.relkind
FROM 
  pg_depend d,
  pg_class c1,
  pg_namespace n1,
  pg_class c2,
  pg_namespace n2
WHERE 
  d.objid = c1.oid AND
  c1.relnamespace = n1.oid AND 
  n1.nspname NOT IN('information_schema', 'pg_catalog') AND
  n1.nspname !~ '^pg_toast' AND
  d.refobjid = c2.oid AND
  c2.relnamespace = n2.oid AND 
  n2.nspname NOT IN('information_schema', 'pg_catalog') AND
  n2.nspname !~ '^pg_toast' AND
  c1.oid != c2.oid
GROUP BY n1.nspname,c1.relname,c1.oid,c1.relkind,
  n2.nspname,c2.relname,c2.oid,c2.relkind
ORDER BY n1.nspname,c1.relname;

Oplysninger om alle disse interne bits kan findes i systemkataloget dokumentation.



  1. PGEast, Hardware Benchmarking og PG Performance Farm

  2. Hvordan installeres mysql fra batch-fil?

  3. Hvornår kaldes en database som en indlejret database?

  4. MySQL - Sådan får du søgeresultater med nøjagtig relevans