sql >> データベース >  >> RDS >> PostgreSQL

データベースオブジェクト間の依存関係を確認するために、データベースコードをどのように文書化しますか?

    データベースの内部の「依存」情報を照会することにより、この情報の一部を実際に収集できます。何かが別のものに依存している場合、それはそれを使用していることを示唆しています。関係する2つの構造をトラバースする方法を理解するためのサンプルクエリを次に示します。

    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;
    

    これらすべての内部ビットに関する情報は、システムカタログ にあります。 ドキュメント。



    1. Laravel 4でUPDATEまたはINSERTを使用するにはどうすればよいですか?

    2. クエリでグループ内に行番号を追加する方法

    3. ODBC接続を使用したExcelVBAマクロからのOracleテーブルの更新

    4. 実行中のPostgresバージョンを表示する方法