sql >> Database >  >> RDS >> PostgreSQL

Hoe documenteert u uw databasecode om afhankelijkheden tussen databaseobjecten te zien?

U kunt een deel van deze informatie daadwerkelijk verzamelen door de interne 'afhankelijk'-informatie van de database te doorzoeken. Als iets van een ander afhangt, suggereert dat dat het het gebruikt. Hier is een voorbeeldquery om u een idee te geven hoe u de twee betrokken structuren kunt doorkruisen:

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;

Informatie over al deze interne bits is te vinden in de systeemcatalogus documentatie.



  1. DATEDIFF() vs DATEDIFF_BIG() in SQL Server:wat is het verschil?

  2. Hoe DateTime naar TimeSpan te converteren in Entity Framework-query

  3. Is er een andere manier om dit programma te implementeren zonder geneste while-lus te gebruiken?

  4. Trends in databasehardware en -infrastructuur