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

Jak dokumentujete kód databáze, abyste viděli závislosti mezi databázovými objekty?

Některé z těchto informací můžete ve skutečnosti shromáždit dotazem na interní „závislosti“ databáze. Pokud něco závisí na jiném, znamená to, že to používá. Zde je ukázkový dotaz, který vám poskytne představu, jak procházet dvěma zahrnutými strukturami:

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;

Informace o všech těchto interních bitech lze nalézt v systémovém katalogu dokumentaci.



  1. Pole více typů dat v PostgreSQL

  2. vyžaduje každé volání mysql_real_escape_string další cestu do databáze?

  3. Jak používat dotazy databáze MySql v aplikaci Spring Boot?

  4. Unikátní modelové pole v Django a rozlišování velkých a malých písmen (postgres)