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

PostgreSQL:外部キーとして特定の列を持つすべてのテーブルのリストを取得するSQLスクリプト

    SELECT
        r.table_name
    FROM information_schema.constraint_column_usage       u
    INNER JOIN information_schema.referential_constraints fk
               ON u.constraint_catalog = fk.unique_constraint_catalog
                   AND u.constraint_schema = fk.unique_constraint_schema
                   AND u.constraint_name = fk.unique_constraint_name
    INNER JOIN information_schema.key_column_usage        r
               ON r.constraint_catalog = fk.constraint_catalog
                   AND r.constraint_schema = fk.constraint_schema
                   AND r.constraint_name = fk.constraint_name
    WHERE
        u.column_name = 'id' AND
        u.table_catalog = 'db_name' AND
        u.table_schema = 'public' AND
        u.table_name = 'table_a'
    

    これは、完全なカタログ/スキーマ/名前トリプレットを使用して、3つのinformation_schemaビューすべてからdbテーブルを識別します。必要に応じて1つまたは2つドロップできます。

    クエリは、テーブル'd'の列'a'に対して外部キー制約があるすべてのテーブルを一覧表示します



    1. SQL異なるデータベースの複数のテーブルからデータを挿入します

    2. SQLiteデータベースは、Android Lをアップグレードした後、<table_name>(列)に警告の自動インデックスを提供します

    3. MySQL-グループ内の最大値に一致するようにすべてのレコードを更新

    4. データを複数のデータベースに分割することをお勧めしますか?