兼容MySQL comment子句解决金仓数据库KingbaseES在创建数据库对象的同时不能添加注释的问题
关键字
MySQL、comment
问题描述
无法在定义数据库对象的同时一并为对象添加注释
--列注释
create table kes_tab1(col1 int comment 'column type int');
--表注释
create table kes_tab2(col1 int)comment 'table kes_tab2';
--表和列同时注释
create table kes_tab3(col1 int comment 'column name col1')comment 'table kes_tab3';
--索引注释
create table kes_tab4(col1 int);
create index kes_tab4_idx on kes_tab4(col1)comment 'index kes_tab4_idx';
--函数注释
\set SQLTERM /
CREATE FUNCTION com_dump_fun1() RETURNS int
comment '!@#$%^&*这是一个注释'
AS
DECLARE
a1 int;
BEGIN
return 1;
END;
/
\set SQLTERM ;
--存储过程注释
\set SQLTERM /
CREATE OR REPLACE PROCEDURE com_dump_pro1()
COMMENT 'a procedure'
AS
BEGIN
raise notice 'a';
END;
/
\set SQLTERM ;
问题分析
历史版本中需要用户先完成数据库对象的定义,然后再通过comment on关键字对数据库对象进行注释添加,较为繁琐。
解决方案
为解决该问题,在定义表以及列、索引、函数、存储过程语法树中添加comment子句,以达成功能实现。注:该功能只在MySQL模式支持。