2017-12-17 7 views
1

information_schemaを使用して、テーブルで定義されているすべての参照を1つのテーブルに問い合わせることをお勧めします。テーブル内のすべての「参照」カラムを返すPostgreSQLクエリ

create table article(
    id varchar(255), 
    photo int references photos 
) 

select references from information_schema where table_name = 'article' 

それはそのテーブルの参照のみの列がありますので、photoを一覧表示するにはそのような何かを願い。

+0

これは、制約があるすべての列を意味しますか? –

+0

@NanduKalidindiは質問を例文 –

答えて

0

以下のように試すことができます。

information_schema.table_constraintsが制約タイプですべての制約が含まれていますし、information_schema.key_column_usageは、列名と制約名をなどが含まれます

KEY COLUMN USAGE

TABLE CONSTRAINTS

ので、列名を取得するために、あなたは両方に参加し、あなたの希望する出力を得る必要があります。

SELECT col.column_name 
FROM 

INFORMATION_SCHEMA.key_column_usage AS col 
INNER JOIN 
INFORMATION_SCHEMA.table_constraints AS constr 

ON col.constraint_name = constr.constraint_name 
AND col.table_name = <YOUR TABLE NAME> 
AND constr.constraint_type = 'FOREIGN KEY' 
AND constr.table_catalog = <YOUR DATABASE NAME> 
AND constr.table_schema = 'public'; 
+0

で更新しました。 'col.constraint_name = constr.constraint_nameとconstr.table_name = FOREIGN KEY 'とconstr.table_schema =' public''は 'error:column"記事が "存在しません"という結果になります。 –

+0

"'article' 'を一重引用符で囲む必要があります。また、商品テーブルがすでに登録されていることを確認してください。 –

関連する問題