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

PostgreSQLで制約の名前を見つける方法

    問題:

    PostgreSQLのテーブルで制約の名前を見つけたいと考えています。

    例:

    テーブルstudent

    解決策:

    SELECT conname, contype
    FROM pg_catalog.pg_constraint
    JOIN pg_class t ON t.oid = c.conrelid
    WHERE t.relname ='student';
    

    結果は次のとおりです。

    conname contype
    student_age_check c
    student_pkey p
    student_personal_number_key u
    student_country_id_fkey f

    ディスカッション:

    PostgreSQLで制約の名前を見つけるには、ビューpg_constraint pg_catalog スキーマ。ビューに参加するpg_catalog.pg_constraint ビューpg_classJOIN pg_class t ON t.oid = c.conrelid )そしてrelnameを使用します テーブル名で制約をフィルタリングする列。この例では、テーブルstudentWHERE t.relname ='student'

    connameを選択します およびcontype 制約タイプとともに制約名を表示します。列contype 、値「p」は主キー、「f」は外部キー、「u」はUNIQUEを表します。 制約、および「c」はCHECKを表します 制約。

    たとえば、student_pkeyという名前の制約を確認できます。 student テーブル。 contype 列には、制約のタイプが示されます。主キーの場合、これはpです。 。 conname このビューの列には、この制約を含むテーブルについても表示されます。


    1. 12一般的に使用されるSQL演算子

    2. SQLite ALTER TABLE

    3. PostgreSQLのORDERBY...USING句

    4. MySQLユーザーにデータベースを作成させますが、自分のデータベースへのアクセスのみを許可します