我最近发现,在PostgreSQL中,你可以对所有类型的对象执行attach a comment次操作.特别是,我对玩数据库的注释感兴趣.例如,要删除数据库的注释:

COMMENT ON DATABASE mydatabase IS 'DB Comment';

然而,与mydatabase的 comments 截然相反的说法是什么?

psql命令行中,我可以看到\l+命令产生的注释和其他信息;我可以借助awk来实现我的目标.但如果可能的话,我宁愿使用SQL语句.

推荐答案

要获取数据库上的注释,请使用以下查询:

select description from pg_shdescription
join pg_database on objoid = pg_database.oid
where datname = '<database name>'

此查询将获得给定表名的表注释:

select description from pg_description
join pg_class on pg_description.objoid = pg_class.oid
where relname = '<your table name>'

如果在不同的模式中使用相同的表名,则需要稍加修改:

select description from pg_description
join pg_class on pg_description.objoid = pg_class.oid
join pg_namespace on pg_class.relnamespace = pg_namespace.oid
where relname = '<table name>' and nspname='<schema name>'

Postgresql相关问答推荐

如何使用Docker安装PostgreSQL扩展

Pogresql性能中的枚举与文本数据类型

多克.波斯格雷斯.PgAdmin4

在Postgres游标中从一行变量中减go 另一行变量

如何将 jackc/pgx 与连接池、上下文、准备好的语句等一起使用

无法从外部连接到在 AWS EC2 实例上运行的 Postgres

使用 Heroku CLI、Postgres 的 SQL 语法错误

新数据未保存到 Postgres 上的 Rails 数组列

如何在 PostgreSQL hstore 中使用通配符查询值

如何从 WSL 连接到 windows postgres 数据库

PostgreSQL 可以对数组元素有唯一性约束吗?

使用 current_setting() 判断值

在 PostgreSQL 中的表上禁用 DELETE?

解释结果中的Recheck Cond是什么意思?

根据 Helm 图表设置值

按任意时间间隔计算行数的最佳方法

PostgreSQL/JDBC 和 TIMESTAMP 与 TIMESTAMPTZ

错误:关系列不存在 PostgreSQL,无法运行插入查询

我应该在 Django DATABASE ENGINE 中使用哪个 Postgres 值?

PostgreSQL 中具有多个连接的 UPDATE 语句