更新时间:2026-10-21 GMT+08:00
分享

COMMENT

功能描述

创建或修改一个对象的注释。

注意事项

  • 每个对象仅存储一条注释信息。修改注释时,对同一对象重新执行COMMENT命令;删除注释时,将注释文本设为NULL。对象被删除时,其关联注释将自动清除。
  • 注释浏览不具备安全保护机制。连接到数据库的用户均可查看该数据库中所有对象的注释。共享对象(如数据库、角色、表空间)的注释为全局存储,连接到任意数据库的用户均可查询。因此,请勿在注释中存储与安全相关的敏感信息。
  • 对于大多数对象,只有对象的所有者或者被授予了对象COMMENT权限的用户可以执行该命令,系统管理员默认拥有该权限。
  • 角色没有所有者,所以COMMENT ON ROLE命令仅可以由系统管理员对系统管理员角色执行,拥有CREATE ROLE权限的角色也可以为非系统管理员角色设置注释。系统管理员可以对所有对象进行注释。

语法格式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
COMMENT ON
{
  AGGREGATE agg_name (agg_type [, ...] ) |
  CAST (source_type AS target_type) |
  COLLATION object_name |
  COLUMN { table_name.column_name | view_name.column_name } |
  CONSTRAINT constraint_name ON table_name |
  CONVERSION object_name |
  DATABASE object_name |
  EXTENSION object_name |
  FOREIGN DATA WRAPPER object_name |
  FOREIGN TABLE object_name |
  FUNCTION function_name ( [ {[ argname ] [ argmode ] argtype} [, ...] ] ) |
  INDEX object_name |
   OPERATOR operator_name (left_type, right_type) |
  OPERATOR CLASS object_name USING index_method |
  OPERATOR FAMILY object_name USING index_method |
  [ PROCEDURAL ] LANGUAGE object_name |
  ROLE object_name |
  SCHEMA object_name |
  SERVER 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 |
  TYPE object_name |
  VIEW object_name |
  TRIGGER trigger_name ON table_name
}
   IS 'text';

参数说明

  • agg_name

    聚集函数的名称

  • agg_type

    聚集函数参数的类型。

  • source_type

    类型转换的源数据类型。

  • target_type

    类型转换的目标数据类型。

  • object_name

    对象名。

  • table_name.column_name | view_name.column_name

    列名称。前缀可加表名称或者视图名称。

  • constraint_name

    表约束的名称。

  • table_name

    表的名称。

  • function_name

    函数名称。

  • argmode,argname,argtype

    函数参数的模式、名称以及类型。

  • operator_name

    操作符名称。

  • left_type,right_type

    操作参数的数据类型,可以使用模式进行具体指定。当前置或者后置操作符不存在时,可以增加NONE选项。

  • trigger_name

    触发器名称。

  • text

    注释文本内容。

示例

--建表。
gaussdb=# CREATE TABLE emp(
    empno varchar(7),
    ename varchar(50),
    job varchar(50),
    mgr varchar(7),
    deptno int
);

--表添加注释。
gaussdb=# COMMENT ON TABLE emp IS '部门表';

--字段添加注释。
gaussdb=# COMMENT ON COLUMN emp.empno  IS  '员工编号';
gaussdb=# COMMENT ON COLUMN emp.ename  IS  '员工姓名';
gaussdb=# COMMENT ON COLUMN emp.job    IS  '职务';
gaussdb=# COMMENT ON COLUMN emp.mgr    IS  '上司编号';
gaussdb=# COMMENT ON COLUMN emp.deptno IS  '部门编号';

--查看表的注释。
gaussdb=# \d+
 Schema |    Name     |   Type   | Owner |    Size    |             Storage              | Description 
--------+-------------+----------+-------+------------+----------------------------------+-------------
 public | emp         | table    | omm   | 0 bytes    | {orientation=row,compression=no} | 部门表

--查看字段注释。
gaussdb=# \d+ emp
                                 Table "public.emp"
 Column |         Type          | Modifiers | Storage  | Stats target | Description 
--------+-----------------------+-----------+----------+--------------+-------------
 empno  | character varying(7)  |           | extended |              | 员工编号
 ename  | character varying(50) |           | extended |              | 员工姓名
 job    | character varying(50) |           | extended |              | 职务
 mgr    | character varying(7)  |           | extended |              | 上司编号
 deptno | integer               |           | plain    |              | 部门编号
Has OIDs: no
Distribute By: HASH(empno)
Location Nodes: ALL DATANODES
Options: orientation=row, compression=no

--删除表emp。
gaussdb=# DROP TABLE emp;

相关文档