Postgresql - 关系不存在

时间:2016-08-08 08:58:46

标签: postgresql

我有一个postgresql脚本,它选择有关特定数据库的表和视图的所有信息。我正在尝试添加一个附加列,该列将显示与表或视图关联的注释。 但是我收到错误的SQL状态:42P01,错误:关系“xxx”不存在。

select tbl.*, (select obj_description(tbl.table_name::regclass::oid, 'pg_class')) as DESCRIPTION 
from INFORMATION_SCHEMA.TABLES tbl 
where tbl.table_schema <> 'pg_catalog' and tbl.table_schema <> 'information_schema' 
order by tbl.table_schema, tbl.table_name

不幸的是我不知道我做错了什么。

1 个答案:

答案 0 :(得分:1)

这包含了Abelisto上面的评论。

你应该使用

obj_description(
   (quote_ident(tbl.table_name) || '.' || quote_ident(tbl.table_name))::regclass::oid,
   'pg_class'
)

而不是

(select obj_description(tbl.table_name::regclass::oid, 'pg_class'))

我猜你的一些表名都不是小写的。