在管理规模较大的数据库时,我们往往需要面对大量的表与视图,与此同时在表与视图中可能会存在着许多的字段,让人难以迅速分辨,不利于对于数据库对象的管理。除了在命名时,对于有意义的表、视图及列,应尽量赋予具有意义、容易分辨的名称之外,对于数据库对象添加注释也是一个帮助我们管理数据库的有效办法。

在DM中添加注释可以用注释语句 – “COMMENT ON <对象名称> IS <注释字符串>”。用户可以对于自己拥有的模式下的对象创建注释,可以针对整张表或视图做注释,也可以对于各列进行注释。例如对于已有的表添加注释,语法示例如下:

comment on table TEST.T1 is '这是表注释';


对于视图进行注释,需要将语句中关键字table替换为view。而对于表中列添加注释,则需要将关键字table替换为column,再将添加表注释时的对象换为列名。例如在TEST模式下的T1表中ID列上添加注释,语法示例如下:

comment on column TEST.T1.ID is '这是一个列注释';


利用DM管理工具,可以在创建表的时候就把注释一起添加上,示例如下:

通过添加注释,用户可以对于各个对象添加需要备注的信息,而对于注释的修改,实现方式和添加注释时一样。

comment on table TEST.T1 is '这是又一个表注释';


通过相同方式对于同一个表进行注释操作,即可将该表的注释进行更新。对于注释更新之后,我们可以通过系统表SYSTABLECOMMENTS对于进行查询。

select * from SYSTABLECOMMENTS where SCHNAME='TEST' and TVNAME='T1';


从查询结果看,TEST模式下的T1表的表注释已经被修改成功。SYSTABLECOMMENTS中包含有各模式下的表或视图的注释,SCHNAME为模式名,TVNAME为表或视图的名称,而TABLE_TYPE指定了对象类型为表或者视图,COMMENT$字段即为注释的具体内容。

若需要更新的注释内容中含有单引号,则需要将内容中单引号后面再添加一个单引号。例如,将T1表的注释修改为:这是一个’表’注释。

comment on table TEST.T1 is '这是一个''表''注释';

 select * from SYSTABLECOMMENTS where SCHNAME='TEST' and TVNAME='T1';


对于表或视图中的字段注释进行查询可以参考系统表SYSCOLUMNCOMMENTS。

select * from SYSCOLUMNCOMMENTS;


由于在当前数据库中只有一条列注释,在结果显示中即为TEST模式下T1表中ID列的注释。相比查询表注释的结果,多出的字段COLNAME表明了列名。

前面对于注释的更新操作,实际上是通过语句新建的注释覆盖掉了原有的注释信息。而同样为了删除掉列上的注释,可以将COMMENT语句的值赋给’’,从而达到删掉原注释信息的效果。在利用这种方式将注释去掉后,系统表SYSCOLUMNCOMMENTS中该列的记录并不会消失。示例如下:

comment on column TEST.T1.ID is '';

select * from SYSCOLUMNCOMMENTS where SCHNAME='TEST' and TVNAME='T1' and COLNAME='ID';


通过查询数据字典ALL_COL_COMMENTS同样可以查找到关于当前用户的环境下具有访问权限的对象中列的注释信息。

select * from ALL_COL_COMMENTS where OWNER='TEST';


在该查询结果中会包含可以访问的所有列的注释情况,其中包含OWNER即所有者用户,TABLE_NAME、SCHEMA_NAME、COLUMN_NAME分别对应标明、模式名与列名,而COMMENTS列即为注释信息。未添加过注释的列,其COMMENT值为空值“NULL”。对于表注释,相应的也可以通过查询ALL_COL_COMMENTS来查找。

select * from ALL_COL_COMMENTS where OWNER='TEST';


对于某些特定场景下需要将注释重建,则可以通过SQL语句将原注释内容以语句形式保存下来便于以后能批量执行进行添加。对于前面提到的注释内容含有单引号的记录,在以语句进行保存时需要将单引号的部分考虑在内,方便重建时语句的执行。

select 'comment on table '||t.SCHNAME||'.'||t.TVNAME||' is '''||replace(t.COMMENT$,'''','''''')||''';' as COMMENTS_BAK from systablecomments t where t.TABLE_TYPE='TABLE' and t.SCHNAME not in ('SYS')
union
select 'comment on view '||v.SCHNAME||'.'||v.TVNAME||' is '''||replace(v.COMMENT$,'''','''''')||''';' from systablecomments v where v.TABLE_TYPE='VIEW' and v.SCHNAME not in ('SYS')
union
select 'comment on column '||c.SCHNAME||'.'||c.TVNAME||'.'||c.COLNAME||' is '''||replace(c.COMMENT$,'''','''''')||''';' from syscolumncomments c where c.SCHNAME not in ('SYS');


这样可以将需要保存的注释以SQL语句留存下来,在需要重建时直接执行即可。

达梦数据库注释的使用方法相关推荐

  1. oracle数据库查询open_cursors值的sql语句,达梦数据库查询MAX_SESSION_STATEMENT值方法,MAX_SESSION_STATEMENT的最大值、上限是多少

    windows 下需要用 cmd 登录 oracle 数据库,用 show parameter open_cursors 来查询. 可以看到 open_cursors 的值为 2000. SQL> ...

  2. DM8达梦数据库安装及卸载方法

    DM8达梦数据库安装及windows环境创建数据库实例和注册数据库服务 硬件环境需求 软件环境需求 windows下安装和卸载 安装 卸载 linux下安装和卸载 安装 卸载 硬件环境需求 名称 要求 ...

  3. DM达梦数据库 - 设置忽略关键字方法,login关键字处理实例演示

    实例 sql 语句如下: INSERT INTO INTELLIV_USER (ID, LOGIN, PASSWORD_HASH, FIRST_NAME, LAST_NAME, EMAIL, IMAG ...

  4. 达梦数据库安装学习总结--DCA下篇

    达梦数据库DCA概述 达梦数据库是一款完全自主原创的国产数据库,国产的操作系统及国产的数据库在国内使用不断扩大,升级及发展也日新月异,其中达梦数据库在政府及事业单位就得到广泛应用. DCA课程学习使用 ...

  5. 达梦数据库存储过程注意事项

    引言:达梦数据库是一款国产数据库,在语法使用和函数方面和MySQL,Oracle有着很多相似的地方.但是也有一 些细微的区别. 1.先看一下达梦数据库的存储过程模板: CREATE OR REPLAC ...

  6. 达梦数据库存储过程及游标使用

    达梦数据库存储过程及游标使用 案例: 1.机构表(ORGAN)包含以下字段:主键(OBJUID).机构名称(ORG_NAME).机构类型(ORG_TYPE).第三方机构ID(OUT_ID),等等). ...

  7. 安装VMware Workstation Pro以及纯国产的达梦数据库

    安装VMware Workstation Pro以及纯国产的达梦数据库 VMware Workstation Pro以及达梦数据库分别可以在他们各自的官网下载,key的话可以百度一个,达梦数数据库的k ...

  8. 达梦数据库中迁移过来的数据,在Mysql中批量添加注释,修改注释

    一.原因 数据是从达梦数据库中迁移过来的,迁移完成注释丢失 二.方法 利用 information_schema.COLUMNS 这个表 三.执行步骤 1.这是达梦数据库导出的注释 2.达梦的数数据库 ...

  9. 达梦数据库、oracle数据库如何判断指定表有没有建立索引?对应的表有没有索引查询方法

    sm_appmenuitem 这个演示表有 5 个索引. 我在不知道的情况下想知道这个表的索引有没有建成功,或者说我现在想知道这个表的索引有哪些,就要来查询了. 索引表查询方法如下,把对应的表放到括号 ...

最新文章

  1. 1000万个“AI名师”:用机器算法“解剖”应试教育 | AI聚变
  2. mysql主从复制延时性问题_MySQL主从同步延迟原因及解决办法
  3. 如何在GraphPad Prism中使用非线性回归拟合模型?
  4. IOT物联网观察之物联网是器,大数据是魂,人工智能是手段!
  5. oracle表空间可以迁移,Oracle 表空间迁移
  6. LeetCode 1488. 避免洪水泛滥(贪心+set二分查找)
  7. C++——二进制输出一个数以及输出double型位数过多情况
  8. java字符串常量池长度_Java String类相关知识梳理(含字符串常量池(String Pool)知识)...
  9. 数值优化(Numerical Optimization)学习系列-目录
  10. linux系统 安卓系统安装教程,Linux系统下安装android sdk的方法步骤
  11. Mac下配置PHP+Apache+phpMyAdmin+MySql远程链接
  12. PKU/POJ 2054 Color a Tree
  13. mysql导出所有binlog_mysql导入、导出、查看binlog命令
  14. 详细介绍Access数据库注入
  15. VM中的Ubuntu能ping通外网浏览器不能上网
  16. KAL 推出 Kalignite Hypervisor 解决方案—引领 ATM 硬件更新创新模式
  17. layui获取选中行数据
  18. vatic—视频标注工具安装出现error及注意事项
  19. 高校排课系统/排课管理系统的设计与实现
  20. 微软小娜 服务器连不上,win10小娜提示“无法获取你感兴趣的信息,因为你处于离线状态”的解决方法...

热门文章

  1. 在HTML中使用Vue.js
  2. 2019 苹果开发者上架流程
  3. java 周几_java根据年月日判断周几
  4. selenium配置ip代理和无头selenium
  5. 7.4多元线性回归实例1--python机器学习
  6. Oracle数据库查询优化建议
  7. 读《愤怒驳斥微软中国的一派胡言》的几点感想
  8. tf.image.resize_bilinear
  9. SSL_1491【天使的起誓】(高精度减法)
  10. SonyF717拍摄参数