我有一个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
不幸的是我不知道我做错了什么。
答案 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'))
我猜你的一些表名都不是小写的。