如果我需要确定给定的表是否是一个视图,我可以使用查询而不是使用' \ d' ?我有一个脚本需要审核几个表以便删除,但不想手动检查它们。
答案 0 :(得分:2)
您可以使用pg_class:
relkind char
r =普通表,i =索引,S =序列,v =视图,m =物化视图,c =复合类型,t = TOAST表,f =外表
IF EXISTS (SELECT relname
FROM pg_class
WHERE relname='<object_name>'
AND relkind = 'v')
THEN
...
答案 1 :(得分:2)
您可以从information_schema.tables视图中找到该信息:
select table_type
from information_schema.tables
where table_schema = 'my_schema' and table_name = 'my_table'`
table_type
列说明:
表的类型:持久基表的BASE TABLE(普通表类型),视图的VIEW,外表的FOREIGN TABLE或临时表的LOCAL TEMPORARY