想知道如何使用information_schema
在单个表中查询它在其上定义的所有引用。
create table article(
id varchar(255),
photo int references photos
)
select references from information_schema where table_name = 'article'
希望列出photo
这样的内容,因为它是该表中唯一的参考列。
答案 0 :(得分:0)
您可以尝试以下内容。
information_schema.table_constraints
将包含约束类型的所有约束,information_schema.key_column_usage
将包含列名和约束名等。
因此,为了获得列名,您必须加入两者并获得所需的输出。
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';