2017-08-22 2 views
4

データ型と共に列名を提供するが、参照型(列がprimary_keyであるかforeign_keyであるか)を提供しない次のクエリを思いついた。1つのPOSTGRESQLクエリで参照型(つまりPRIMARY KEY&FOREIGN KEY)とともに列名を取得する方法はありますか?

select column_name, data_type,character_maximum_length,is_nullable 
from information_schema.columns 
where table_name ='employee'; 

これは私が取得しています出力されます:

column_name |  data_type  | character_maximum_length | is_nullable 
-------------+-------------------+--------------------------+------------- 
empno  | character varying |      10 | NO 
full_name | character varying |      30 | YES 
city  | character varying |      9 | YES 
gender  | character   |      7 | YES 

誰かがクエリのためにもreference_type(すなわちPRIMARY_KEY & FOREIGN_KEY)を取得私を助けることはできますか?

+0

を見てください(http://meta.stackexchange.com/q/64068/157328を)[クロスポストない]にしてくださいまたdba.stackexchangeで尋ねられます:https://dba.stackexchange.com/q/184065/1822 –

+0

@a_horse_with_no_name:誰もデータベース管理者に答えませんでしたので、ここにメインの投稿を投稿するように求められました。 –

+0

@サギ:私の質問はあなたがリンクを投稿したものと重複しているとは思えません。 私が探しているのは、その参照型とともにテーブルの列を持つことです。すでにhttps://wiki.postgresql.org/wiki/Retrieve_primary_key_columnsを訪れていたのですが、私の目的を果たしたことで本当に目的が達成されませんでした。 –

答えて

2

あなたはこれを試すことができます。

select c.column_name, c.data_type, c.character_maximum_length, c.is_nullable, s.constraint_name, t.constraint_type 
    from information_schema.columns c 
    left join information_schema.key_column_usage s on s.table_name = c.table_name and s.column_name = c.column_name 
    left join information_schema.table_constraints t on t.table_name = c.table_name and t.constraint_name = s.constraint_name 
    where c.table_name ='employee' 

は、このリンク https://www.postgresql.org/docs/9.1/static/information-schema.html

+0

@a_horse_with_no_name&N.Dov:Bullseye ...これは私が探していたものです。ありがとう、トンマン:) :) :) –

関連する問題