更新时间:2024-11-27 GMT+08:00

COMMENT

功能描述

定义或修改对象的注释。

注意事项

  • 每个对象只存储一条注释,因此要修改对象的注释,对同一个对象发出一条新的COMMENT命令即可。要删除注释,在文本字符串的位置写上NULL即可。当删除对象时,注释自动被删除掉。
  • 目前注释浏览没有安全机制:任何连接到数据库上的用户都可以看到所有该数据库对象的注释。共享对象(比如数据库、角色、表空间)的注释是全局存储的,连接到任何数据库的任何用户都可以看到它们。因此,不要在注释里存放与安全有关的敏感信息。
  • 对大多数对象来说,只有对象的所有者可以设置注释。角色没有所有者,所以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
33
34
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 |
  DOMAIN object_name |
  EXTENSION 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 |
  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 |
  RULE rule_name ON table_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
}
   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

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

  • large_object_oid

    定义/修改注释的大对象的OID值。

  • operator_name

    操作符名称。

  • left_type,right_type

    操作参数的数据类型(可以用模式修饰)。当前置或者后置操作符不存在时,可以增加NONE选项。

  • text

    注释。

示例

创建表:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
CREATE TABLE IF NOT EXISTS CUSTOMER
(    
    C_CUSTKEY     BIGINT NOT NULL CONSTRAINT C_CUSTKEY_pk PRIMARY KEY  , 
    C_NAME        VARCHAR(25)  , 
    C_ADDRESS     VARCHAR(40)  , 
    C_NATIONKEY   INT          , 
    C_PHONE       CHAR(15)     , 
    C_ACCTBAL     DECIMAL(15,2)  
)
DISTRIBUTE BY HASH(C_CUSTKEY);

为customer.c_customer_sk列加注释:

1
COMMENT ON COLUMN customer.C_CUSTKEY IS 'Primary key of customer demographics table.';

创建视图:

1
CREATE OR REPLACE VIEW customer_details_view AS SELECT * FROM CUSTOMER;

为customer_details_view视图加注释:

1
COMMENT ON VIEW customer_details_view IS 'View of customer detail';

为customer表加注释:

1
COMMENT ON TABLE customer IS 'This is my table';