使用PostgreSQL为表或视图创建备注的操作_PostgreSQL

来源:脚本之家  责任编辑:小易  

1 为表和列创建备注

drop table if exists test;
create table test(
  objectid serial not null,
  num integer not null,
 constraint pk_test_objectid primary key (objectid),
 constraint ck_test_num check(num < 123 ),
);
comment on table test is '我是表';
comment on column test.objectid is '我是唯一主键';
comment on column test.num is '数量字段';
comment on constraint pk_test_objectid on test is '我是约束,唯一主键';
comment on constraint ck_test_num on test is '我是约束,num字段必须小于123';
\dS+ test;

2 为视图和列创建备注

drop view if exists vtest;
create or replace view vtest
 as select 1 as col1, 'a' as col2, now() as col3;
comment on view vtest is '视图备注';
comment on column vtest.col1 is '第一列备注,integer类型';
comment on column vtest.col2 is '第二列备注,字符类型';
comment on column vtest.col3 is '第三列备注,日期时间类型';

3 comment语法

COMMENT ON
{
 ACCESS METHOD object_name |
 AGGREGATE aggregate_name ( aggregate_signature ) |
 CAST (source_type AS target_type) |
 COLLATION object_name |
 COLUMN relation_name.column_name |
 CONSTRAINT constraint_name ON table_name |
 CONSTRAINT constraint_name ON DOMAIN domain_name |
 CONVERSION object_name |
 DATABASE object_name |
 DOMAIN object_name |
 EXTENSION object_name |
 EVENT TRIGGER object_name |
 FOREIGN DATA WRAPPER object_name |
 FOREIGN TABLE object_name |
 FUNCTION function_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
 INDEX object_name |
 LARGE OBJECT large_object_oid |
 MATERIALIZED VIEW object_name |
 OPERATOR operator_name (left_type, right_type) |
 OPERATOR CLASS object_name USING index_method |
 OPERATOR FAMILY object_name USING index_method |
 POLICY policy_name ON table_name |
 [ PROCEDURAL ] LANGUAGE object_name |
 PUBLICATION object_name |
 ROLE object_name |
 RULE rule_name ON table_name |
 SCHEMA object_name |
 SEQUENCE object_name |
 SERVER object_name |
 STATISTICS object_name |
 SUBSCRIPTION object_name |
 TABLE object_name |
 TABLESPACE object_name |
 TEXT SEARCH CONFIGURATION object_name |
 TEXT SEARCH DICTIONARY object_name |
 TEXT SEARCH PARSER object_name |
 TEXT SEARCH TEMPLATE object_name |
 TRANSFORM FOR type_name LANGUAGE lang_name |
 TRIGGER trigger_name ON table_name |
 TYPE object_name |
 VIEW object_name
} IS 'text'
where aggregate_signature is:
* |
[ argmode ] [ argname ] argtype [ , ... ] |
[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]

注意:SQL 标准中没有COMMENT命令。

补充:postgre 查询注释_PostgreSQL查询表以及字段的备注

查询所有表名称以及字段含义

select c.relname 表名,cast(obj_description(relfilenode,'pg_class') as varchar) 名称,a.attname 字段,d.description 字段备注,concat_ws('',t.typname,SUBSTRING(format_type(a.atttypid,a.atttypmod) from '.∗')) as 列类型 from pg_class c,pg_attribute a,pg_type t,pg_description d
where a.attnum>0 and a.attrelid=c.oid and a.atttypid=t.oid and d.objoid=a.attrelid and d.objsubid=a.attnum
and c.relname in (select tablename from pg_tables where schemaname='public' and position('_2' in tablename)=0) order by c.relname,a.attnum

查看所有表名

select tablename from pg_tables where schemaname='public' and position('_2' in tablename)=0;
select * from pg_tables;

查看表名和备注

select relname as tabname,cast(obj_description(relfilenode,'pg_class') as varchar) as comment from pg_class c
where relname in (select tablename from pg_tables where schemaname='public' and position('_2' in tablename)=0);
select * from pg_class;

查看特定表名备注

select relname as tabname,
cast(obj_description(relfilenode,'pg_class') as varchar) as comment from pg_class c
where relname ='表名';

查看特定表名字段

select a.attnum,a.attname,concat_ws('',t.typname,SUBSTRING(format_type(a.atttypid,a.atttypmod) from '.∗')) as type,d.description from pg_class c,pg_attribute a,pg_type t,pg_description d
where c.relname='表名' and a.attnum>0 and a.attrelid=c.oid and a.atttypid=t.oid and d.objoid=a.attrelid and d.objsubid=a.attnum;

以上为个人经验,希望能给大家一个参考,也希望大家多多支持真格学网。如有错误或未考虑完全的地方,望不吝赐教。

您可能感兴趣的文章:解决postgresql表中的字段名称包含特殊符号的问题PostgreSQL 实现查询表字段信息SQL脚本PostgreSQL 定义返回表函数的操作启动PostgreSQL服务器 并用pgAdmin连接操作对Postgresql中的json和array使用介绍PostgreSQL批量update与oracle差异详解postgresql数据库安装部署搭建主从节点的详细过程(业务库)如何获取PostgreSQL数据库中的JSON值

  • 本文相关:
  • postgresql实现交叉表(行列转换)的5种方法示例
  • linux centos 7安装postgresql9.3图文教程
  • postgresql通过索引优化查询速度操作
  • postgresql入门简介
  • postgresql synchronous_commit参数的用法介绍
  • postgresql 查找当前数据库的所有表操作
  • postgresql的crud操作详解
  • postgresql分区表(partitioning)应用实例详解
  • postgresql11修改wal-segsize的操作
  • pgsql锁表后kill进程的操作
  • 请教postgresql中,建表时怎么默认为表字段添加注...
  • 怎样用postgresql创建表
  • 怎样用postgresql建表,建数据库
  • 如何使用Navicat for PostgreSQL视图功能
  • 如何创建使用和删除PostgreSQL数据库中的视图
  • postgresql 如何将查询结果作为另一个表的名字来使用
  • postgresql中视图和表的区别和联系是什么
  • postgresql表怎么建立
  • postgreSQL在哪儿写创建表的语句?
  • 如何使用Navicat for PostgreSQL触发函数
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页解决postgresql表中的字段名称包含特殊符号的问题postgresql 实现查询表字段信息sql脚本postgresql 定义返回表函数的操作启动postgresql服务器 并用pgadmin连接操作对postgresql中的json和array使用介绍postgresql批量update与oracle差异详解postgresql数据库安装部署搭建主从节点的详细过程(业务库)如何获取postgresql数据库中的json值postgresql实现交叉表(行列转换)的5种方法示例linux centos 7安装postgresql9.3图文教程postgresql通过索引优化查询速度操作postgresql入门简介postgresql synchronous_commit参数的用法介绍postgresql 查找当前数据库的所有表操作postgresql的crud操作详解postgresql分区表(partitioning)应用实例详解postgresql11修改wal-segsize的操作pgsql锁表后kill进程的操作postgresql 角色与用户管理介绍windows下postgresql数据库的下载windows下postgresql安装图解15个postgresql数据库实用命令分postgresql中的oid和xid 说明postgresql alter语句常用操作小windows postgresql 安装图文教程postgresql 安装和简单使用postgresql 创建表分区postgresql新手入门教程postgresql查询锁表以及解除锁表操作深入理解postgresql的mvcc并发处理方式postgresql的pl/pgql使用操作--将多条执行linux centos 7源码编译安装postgresql9.postgresql 流复制异步转同步的操作postgresql流复制原理以及流复制和逻辑复postgresql 字符串拆分与合并案例查看postgresql系统信息的常用命令操作postgresql中常用的时间日期脚本使用教程postgresql 默认权限查看方式
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved