我最近发现,在PostgreSQL中,你可以对所有类型的对象执行attach a comment次操作.特别是,我对玩数据库的注释感兴趣.例如,要删除数据库的注释:
COMMENT ON DATABASE mydatabase IS 'DB Comment';
然而,与mydatabase
的 comments 截然相反的说法是什么?
从psql
命令行中,我可以看到\l+
命令产生的注释和其他信息;我可以借助awk来实现我的目标.但如果可能的话,我宁愿使用SQL语句.
我最近发现,在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>'