sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur dokumenterar du din databaskod för att se beroenden mellan databasobjekt?

Du kan faktiskt samla in en del av denna information genom att fråga databasens interna "beror"-information. Om något beror på en annan, tyder det på att den använder det. Här är ett exempel på en fråga som ger dig en uppfattning om hur du går igenom de två inblandade strukturerna:

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;

Information om alla dessa interna bitar finns i systemkatalogen dokumentation.



  1. Fråga databasvärden baserat på användarens plats

  2. Formatera SQL-tabelldata som texttabell

  3. MySQL- Wamp-servern fungerar inte efter win10-uppgradering

  4. Hur får man en django-mall för att hämta information från två olika modeller?