前段时间,经常被社区中的Trafodion用户问及Trafodion是否支持表和字段的注释功能,即通常的COMMENTS功能。一个数据库中可能包含了很多个表,每个表可能也包含了很多个字段。每个表或字段都可能具有其业务上的不同含义,对于业务不熟悉的新人,如果一开始接触到的就是很多只有表名列名的表时,很可能会迷惑茫然。这时,如果每个表及每个字段都有比较清晰地注释定义,那么对于新人理解其业务含义则有相当重要的意义。
接触过传统数据库的人可能都知道,像Oracle、MySQL、PostGreSQL等传统数据库都支持COMMENTS功能,以下两个链接是Oracle及PostGreSQL官方关于COMMMENTS的定义及用法,其他数据库暂且不在这里一一列出。
• Oracle
http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4009.htm
• PostgreSQL
https://www.postgresql.org/docs/9.4/static/sql-comment.html
在早期包括当前的Trafodion发行版本中,仍然不支持COMMENTS功能。然而,如果你经常关于Apache Trafodion JIRA网站的话,你会发现,这个功能当然已经被实现,并会在后续版本中将被release出来。
现在,先让我们提前感受一下Trafodion中的COMMENT功能。从语法上,Trafodion的这个COMMENTS功能很类似于PostGreSQL的COMMENT ON,以下是我用最新的Trafodion编译环境测试的功能。
SQL>create table test_ly(a int, b char(10));
--- SQL operation complete.
SQL>comment on table test_ly is 'comment of test_ly';
--- SQL operation complete.
SQL>comment on column test_ly.a is 'comment of test_ly.a';
--- SQL operation complete.
SQL>showddl test_ly;
CREATE TABLE TRAFODION.SEABASE.TEST_LY
(
A INT DEFAULT NULL NOT SERIALIZED
, B CHAR(10) CHARACTER SET ISO88591 COLLATE
DEFAULT DEFAULT NULL NOT SERIALIZED
)
ATTRIBUTES ALIGNED FORMAT
;
COMMENT ON TABLE TRAFODION.SEABASE.TEST_LY IS 'comment of test_ly' ;
COMMENT ON COLUMN TRAFODION.SEABASE.TEST_LY.A IS 'comment of test_ly.a' ;
--- SQL operation complete.
SQL>comment on column test_ly.b is '列名B的注释';
--- SQL operation complete.
SQL>showddl test_ly;
CREATE TABLE TRAFODION.SEABASE.TEST_LY
(
A INT DEFAULT NULL NOT SERIALIZED
, B CHAR(10) CHARACTER SET ISO88591 COLLATE
DEFAULT DEFAULT NULL NOT SERIALIZED
)
ATTRIBUTES ALIGNED FORMAT
;
COMMENT ON TABLE TRAFODION.SEABASE.TEST_LY IS 'comment of test_ly' ;
COMMENT ON COLUMN TRAFODION.SEABASE.TEST_LY.A IS 'comment of test_ly.a' ;
COMMENT ON COLUMN TRAFODION.SEABASE.TEST_LY.B IS '列名B的注释' ;
--- SQL operation complete.