COMMENT

功能描述

定义或修改一个对象的注释。

注意事项

  • 每个对象只存储一条注释,因此要修改一个注释,对同一个对象发出一条新的COMMENT命令即可。要删除注释,在文本字符串的位置写上NULL即可。当删除对象时,注释自动被删除掉。
  • 目前注释浏览没有安全机制:任何连接到某数据库上的用户都可以看到所有该数据库对象的注释。共享对象(比如数据库、角色、表空间)的注释是全局存储的,连接到任何数据库的任何用户都可以看到它们。因此,不要在注释里存放与安全有关的敏感信息。
  • 对大多数对象,只有对象的所有者或者被授予了对象COMMENT权限的用户可以设置注释,系统管理员默认拥有该权限。
  • 角色没有所有者,所以COMMENT ON ROLE命令仅可以由系统管理员对系统管理员角色执行,有CREATEROLE权限的角色也可以为非系统管理员角色设置注释。系统管理员可以对所有对象进行注释。

语法格式

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

定义/修改注释的函数名称。 - argname,argmode,argtype

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

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

操作符名称。 - left_type,right_type

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

触发器名称。 - text

注释。

示例

1. openGauss=# CREATE TABLE tpcds.customer_demographics_t2
2. (
3. CD_DEMO_SK                INTEGER               NOT NULL,
4. CD_GENDER                 CHAR(1)                       ,
5. CD_MARITAL_STATUS         CHAR(1)                       ,
6. CD_EDUCATION_STATUS       CHAR(20)                      ,
7. CD_PURCHASE_ESTIMATE      INTEGER                       ,
8. CD_CREDIT_RATING          CHAR(10)                      ,
9. CD_DEP_COUNT              INTEGER                       ,
10. CD_DEP_EMPLOYED_COUNT     INTEGER                       ,
11. CD_DEP_COLLEGE_COUNT      INTEGER
12. )
13. WITH (ORIENTATION = COLUMN,COMPRESSION=MIDDLE)
14. ;

16. -- 为tpcds.customer_demographics_t2.cd_demo_sk列加注释。
17. openGauss=# COMMENT ON COLUMN tpcds.customer_demographics_t2.cd_demo_sk IS 'Primary key of customer demographics table.';

19. --创建一个由c_customer_sk小于150的内容组成的视图。
20. openGauss=# CREATE VIEW tpcds.customer_details_view_v2 AS
21. SELECT *
22. FROM tpcds.customer
23. WHERE c_customer_sk < 150;

25. -- 为tpcds.customer_details_view_v2视图加注释。
26. openGauss=# COMMENT ON VIEW tpcds.customer_details_view_v2 IS 'View of customer detail';

28. -- 删除view。
29. openGauss=# DROP VIEW tpcds.customer_details_view_v2;

31. -- 删除tpcds.customer_demographics_t2。
32. openGauss=# DROP TABLE tpcds.customer_demographics_t2;