人大金仓数据库KingbaseES COMMENT使用介绍

关键字:

COMMENT、人大金仓、KingbaseES

COMMENT用途

通常用于数据库对象(如表、视图、索引、列等)上添加注释或描述信息。其主要目的是提供数据库对象的文档化或注释,便于数据库开发人员、管理员等更容易理解数据库的结构和目的。

COMMENT存储一个数据库对象的注释,对于每一个对象只保存一个注释字符串,因此为了修改一段注释,需要对同一个对象发出一个新的COMMENTON命令。对于移除一段注释,可在文本字符串的位置上写上NULL。此外,当对象被删除时,其注释也会被自动删除。KES中COMMENT ON命令支持的对象非常全面,主要介绍TABLE、COLUMN、INDEX、FUNCTION、PROCEDURE、view等常见的对象。COMMENT ON命令中的注释内容是客户端传入,因此遵循客户端的编码方式,一般中文的默认编码方式是GBK,该值传入服务端时会自动将编码方式转为服务端编码方式存储。可以通过show server_encoding/client_encoding命令查看服务端或客户端编码。

COMMENT语法

COMMENT ON完整的语法树如下附录所示,下图2-1为COMMENT ON支持的常见对象和支持的用户接口。注释常用的接口,除了新增注释,还包括对注释修改(其语法和新增注释相同),删除注释(将注释的字符串位置上写NULL即可)。

上图中,对于object_name,即被注释的对象名称,是可以被其前方的关键字直接限定的。而对于列的注释,是必须要用relation_name(表、视图后组合类型等)后接具体的列名,才能为列完成注释。

  1. COMMENT ON TABLE语句

COMMENT ON TABLE tbl_name IS ‘tbl_comment_text’;

  1. COMMENT ON VIEW 语句

COMMENT ON VIEW tbl_name IS ‘view_comment_text’;

3.COMMENT ON COLUMN 语句

COMMENT ON COLUMN col_name IS ‘col_comment_text’;

4.COMMENT ON INDEX语句

COMMENT ON INDEX idx_name IS ‘idx_comment_text’;

5.COMMENT ON FUNCTION语句

COMMENT ON FUNCTION function_name(

[ [argmode] [argname] argtype [, ...] ] )

IS ‘fun_comment_text’;

6.COMMENT ON PRODURE语句

COMMENT ON PRODURE procedure_name(

[ [argmode] [argname] argtype [, ...] ] )

IS ‘proc_comment_text’;

7.COMMENT ON TYPE语句

COMMENT ON PRODURE procedure_name(

[ [argmode] [argname] argtype [, ...] ] )

IS ‘proc_comment_text’;

语法用例

注释的创建、修改和删除

CREATE TABLE sales

(

    sales_id NUMBER,

    quantity NUMBER,

    name   VARCHAR(30)

);

-- 新增表注释

COMMENT ON TABLE sales IS 'Sales Information comment';

D:\code\md\2023-09-23-12-33-06.png

-- 新增列注释

COMMENT ON COLUMN sales.name IS 'This is sales name';

D:\code\md\2023-09-23-12-33-43.png

-- 修改列注释

COMMENT ON COLUMN sales.name IS 'New sales name comment';

D:\code\md\2023-09-23-13-30-03.png

-- 删除列注释

COMMENT ON COLUMN sales.name IS NULL;

D:\code\md\2023-09-23-13-31-11.png

-- 创建索引

CREATE INDEX index_sales_id ON sales(sales_id);

-- 新增索引注释

COMMENT ON INDEX index_sales_id IS 'sales ID index comment';

select * from pg_description where objoid = 'index_sales_id'::regclass;

D:\code\md\2023-09-23-12-44-48.png

-- 删除索引注释

COMMENT ON INDEX index_sales_id IS NULL;

select * from pg_description where objoid = 'index_sales_id'::regclass;

D:\code\md\2023-09-23-13-33-07.png

-- 创建函数

CREATE FUNCTION hello(s CHAR(20)) RETURNS CHAR(50) AS 

$$ BEGIN 

RETURN CONCAT('Hello, ',s,'!'); 

END;

$$LANGUAGE plpgsql;

-- 新增函数注释

COMMENT ON FUNCTION hello IS 'a func comment';

D:\code\md\2023-09-23-13-27-06.png

附录

KES数据库中COMMENT ON的完整语法树

参考资料

KingbaseES SQL语言参考手册

  • 21
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值