更新日期:2024年09月11日
功能描述
定义或修改一个对象的注释。
注意事项
每个对象只存储一条注释,因此要修改一个注释,对同一个对象发出一条新的
COMMENT 命令即可。要删除注释,在文本字符串的位置写上NULL 即可。当删除对
象时,注释自动被删除掉。
目前注释浏览没有安全机制:
任何连接到某数据库上的用户都可以看到所有该数据库对
象的注释。共享对象(比如数据库、角色、表空间)的注释是全局存储的,连接到任何
数据库的任何用户都可以看到它们。因此,不要在注释里存放与安全有关的敏感信息。
对大多数对象,只有对象的所有者或者被授予了对象COMMENT 权限的用户可以设置
注释,系统管理员默认拥有该权限。
角色没有所有者,所以COMMENT ON ROLE 命令仅可以由系统管理员对系统管理员
角色执行,
有CREATEROLE 权限的角色也可以为非系统管理员角色设置注释。
系统管
理员可以对所有对象进行注释。
语法格式
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 |
GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
817
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
聚集函数的名称。
GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
818
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
GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
819
操作符名称。
left_type,right_type
操作参数的数据类型(可以用模式修饰)
。当前置或者后置操作符不存在时,可以增加
NONE 选项。
trigger_name
触发器名称。
text
注释。
示例
gbase=#CREATE TABLE tpcds.customer_demographics_t2
(
CD_DEMO_SK
INTEGER
NOT NULL,
CD_GENDER
CHAR(1)
,
CD_MARITAL_STATUS
CHAR(1)
,
CD_EDUCATION_STATUS
CHAR(20)
,
CD_PURCHASE_ESTIMATE
INTEGER
,
CD_CREDIT_RATING
CHAR(10)
,
CD_DEP_COUNT
INTEGER
,
CD_DEP_EMPLOYED_COUNT
INTEGER
,
CD_DEP_COLLEGE_COUNT
INTEGER
)
WITH (ORIENTATION = COLUMN,COMPRESSION=MIDDLE)
;
-- 为tpcds.customer_demographics_t2.cd_demo_sk 列加注释。
GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
820
gbase=#COMMENT ON COLUMN tpcds.customer_demographics_t2.cd_demo_sk IS 'Primary
key of customer demographics table.';
--创建一个由c_customer_sk 小于150 的内容组成的视图。
gbase=#CREATE VIEW tpcds.customer_details_view_v2 AS
SELECT *
FROM tpcds.customer
WHERE c_customer_sk < 150;
-- 为tpcds.customer_details_view_v2 视图加注释。
gbase=#COMMENT ON VIEW tpcds.customer_details_view_v2 IS 'View of customer detail';
-- 删除view。
gbase=#DROP VIEW tpcds.customer_details_view_v2;
-- 删除tpcds.customer_demographics_t2。
gbase=#DROP TABLE tpcds.customer_demographics_t2;
取值:[0|1]
默认值:0
说明:主键是否可以为空
此参数用来适应极个别场景中,用户不同步主键列,而采用多个非主键列组成“联
合主键”的情况,联合主键的值有可能为null,consumer 需要对null value 做特殊
处理,
举例来说,
delete 语句,
原本写作delete from t1 where a=3,
如果主键值为null,
则需要写作delete from t1 where a is null。对于表关联删除方式,delete 语句原本写
作delete from t1 where a in (select (col1) from temp_table),如果主键值为null,则写
作delete from t1 where (ifnull(a, md5(a))) in (select ifnull(col1,md5(col1)) from
temp_table);
参数默认值为0,表示主键值不为空;如果有需求,需设置为1。
不建议使用此参数。
修改方式:
可使用set 语句修改值也可在配置文件中修改值。
适用于session、
global
范围均可。
GBase 8a MPP Cluster 参数手册
文档版本2022-06-07
南大通用数据技术股份有限公司
19