达梦数据库中注释的使用

news2025/3/1 8:02:39

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

在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语句留存下来,在需要重建时直接执行即可。

以上就是对于DM中有关注释各方面的一点分享。灵活充分的运用注释,可以在面对大量的庞杂的对象结构时更好的对于数据库进行管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/468176.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

EPIT定时器实验(一)

EPIT定时器简介 EPIT&#xff1a;Enhanced Periodic Interrupt Timer&#xff0c;直译就是增强的周期中断定时器&#xff0c;它主要完成周期性中断定时的。 STM32里面的定时器有很多其它功能&#xff0c;比如输入捕获、PWM输出等&#xff0c;但是I.MX6U的的EPIT定时器只是完成…

c#对c++动态库的调用全流程以及详解

如果对pcl里的函数导出为动态库&#xff0c;分为以下几部分&#xff1a; 对c动态库的导出&#xff1b;c#对c动态库的加载&#xff1b;c#对第2步的调用 一、对c动态库的导出 定义导出的宏定义&#xff1a; #ifndef EXPORT # define EXPORT(rettype) __declspec( dllexport …

数据结构之单链表oJ练习

目录 1.移除单链表中与给数相同的元素 2.反转链表 3.找中间节点 4.找倒数第k个 5.合并两个有序链表 6.链表分割 7.链表的回文结构 8.找公共节点 1.移除单链表中与给数相同的元素 解题思路&#xff1a; 初始化一个新链表&#xff0c;从头结点开始遍历&#xff0c;若相同…

天猫数据分析:2023年Q1空气净化器TOP10品牌销量排行榜

随着全球工业化程度的提高&#xff0c;全球空气污染程度仍将继续增加&#xff0c;各领域对空气净化器的需求不断增长&#xff0c;这也有望带动国内空气净化器行业的市场规模保持增长。 根据鲸参谋电商数据平台的相关数据显示&#xff0c;2023年Q1在天猫平台上&#xff0c;空气净…

02_Lock锁

首先看一下JUC的重磅武器——锁&#xff08;Lock&#xff09; 相比同步锁&#xff0c;JUC包中的Lock锁的功能更加强大&#xff0c;它提供了各种各样的锁&#xff08;公平锁&#xff0c;非公平锁&#xff0c;共享锁&#xff0c;独占锁……&#xff09;&#xff0c;所以使用起来…

shell终端敲入命令计算机都做了什么?

本文参考&#xff1a; linux命令行的运行原理是什么&#xff1f; - 知乎 (zhihu.com) 8.1 键盘敲入 A 字母时&#xff0c;操作系统期间发生了什么&#xff1f; | 小林coding (xiaolincoding.com) shell命令背后的执行过程_shell 命令执行的产生的进程_kyrieguard的博客-CSDN博客…

三维动画渲染用什么软件好?

三维渲染是通过计算机应用程序把 3D 模型生成图像&#xff08;照片级真实感或非照片级真实感&#xff09;的自动化过程&#xff0c;三维动画渲染是动画制作过程的最后一步&#xff0c;该过程将各种视觉效果应用于最终模型&#xff0c;例如阴影、纹理、灯光反射和运动模糊等&…

史上最全的接口测试,吐血整理从零到接口自动化实战...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 接口测试&#xf…

04_并发容器类

1. 重现线程不安全&#xff1a;List 首先以List作为演示对象&#xff0c;创建多个线程对List接口的常用实现类ArrayList进行add操作。 public class NotSafeDemo {public static void main(String[] args) {List<String> list new ArrayList<>();for (int i 0; i…

keil移植linux(makefile)

文章目录 运行环境&#xff1a;1.1 freeRTOS_LED工程移植1)修改cubeMX配置2)setting设置3)launch设置4)修改makefile5)修改代码6)实验效果 运行环境&#xff1a; ubuntu18.04.melodic 宏基暗影骑士笔记本 stm32f427IIH6 stlink 9-24v可调电源 robomaster A 板 1.1 freeRTOS_L…

Kubernetes集群的类似top的查看指标的工具ktop

Kubernetes集群的类似top的工具。 遵循Unix/Linux顶级工具的传统&#xff0c;ktop是一个显示有关Kubernetes集群中运行的节点、pod和其他工作负载资源的有用度量信息的工具。 项目地址&#xff1a;https://github.com/vladimirvivien/ktop使用效果图&#xff1a; 特性 集群资…

Linux如何压缩和解压文件

先看压缩 Linux zip 命令用于压缩文件。 zip 是个使用广泛的压缩程序&#xff0c;压缩后的文件后缀名为 .zip 将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip&#xff1a; zip -r html.zip /home/html 如果在我们在 /home/html 目录下&#xff0c;可…

经济回暖、兴趣电商升级,品牌在竞争白热化的市场中如何突围?| D3大会圆桌回顾

冬去春来&#xff0c;消费市场韧性回弹&#xff0c;消费趋势正处于“转折”和“跃升”的阶段。新的机遇和挑战也将伴随着新的思维、方法和模式&#xff0c;呈现出更多元的变化和创新&#xff1a;渠道虚实融合&#xff0c;内容为王&#xff0c;社会化媒体成为主战场等消费场景不…

13-NumPy

文章目录 一.基础1.Ndarray对象2.数据类型 二.数组1.数组属性&#xff08;1&#xff09;arange&#xff08;2&#xff09;shape&#xff08;3&#xff09;ndim&#xff08;4&#xff09;itemsize 2.创建数组&#xff08;1&#xff09;empty&#xff08;2&#xff09;zero&#…

【接口自动化测试】月薪12k必会技术,从0到1学习接口自动化测试,6个操作安排的明明白白

导读&#xff1a;在所有的开发测试中&#xff0c;接口测试是必不可少的一项。有效且覆盖完整的接口测试&#xff0c;不仅能保障新功能的开发质量&#xff0c;还能让开发在修改功能逻辑的时候有回归的能力&#xff0c;同时也是能优雅地进行重构的前提。编写接口测试要遵守哪些原…

电商直播商家崛起所面临的问题,订单管理系统起关键性作用

随着短视频直播的兴起&#xff0c;电商企业再次迎来大爆发&#xff0c;随着销量的猛增&#xff0c;随之而来的的订单处理成了各大商家的头等大事&#xff0c;面对再次崛起的电商蓝库云认为企业在订单管理会经常遇到以下问题&#xff1a; 电商企业在订单管理中可能面临以下问题…

js版计算连续12个月计算不超3万公里

<!--考虑比亚迪车友不是程序员的多&#xff0c;写了个html版的&#xff0c;复制以下代码在记事本&#xff0c;改后缀名为test.html&#xff0c;然后用浏览器打开--> <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>…

基于SpringBoot3从零配置MybatisPlus

基于SpringBoot3从零配置MybatisPlus记录 文章目录 1.环境2.表数据准备3. 配置pom配置yml 配置MapperScan 3.问题总结问题1: Property sqlSessionFactory or sqlSessionTemplate are required问题2&#xff1a;org.apache.ibatis.binding.BindingException: Invalid bound stat…

Python学习13:说句心里话 A(python123)

描述 分两次从控制台接收用户的两个输入&#xff1a;第一个内容为"人名"&#xff0c;第二个内容为"心里话"。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪…

使用D435i深度相机运行ORB-SLAM3

下载安装链接 下载ORB-SLAM3地址&#xff1a; git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git eigen3多版本安装&#xff1a;https://blog.csdn.net/weixin_41756645/article/details/129570141 ORB-SLAM2中eigen3版本为&#xff1a;3.2.10版本 ORB-SLAM3中eigen3版…