达梦数据库中注释的使用
在管理规模较大的数据库时,我们往往需要面对大量的表与视图,与此同时在表与视图中可能会存在着许多的字段,让人难以迅速分辨,不利于对于数据库对象的管理。除了在命名时,对于有意义的表、视图及列,应尽量赋予具有意义、容易分辨的名称之外,对于数据库对象添加注释也是一个帮助我们管理数据库的有效办法。
在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')unionselect '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')unionselect 'comment on column '||c.SCHNAME||'.'||c.TVNAME||'.'||c.COLNAME||' is '''||replace(c.COMMENT$,'''','''''')||''';' from syscolumncomments c where c.SCHNAME not in ('SYS');
这样可以将需要保存的注释以SQL语句留存下来,在需要重建时直接执行即可。
以上就是对于DM中有关注释各方面的一点分享。灵活充分的运用注释,可以在面对大量的庞杂的对象结构时更好的对于数据库进行管理。
达梦数据库中注释的使用相关推荐
- 达梦数据库中迁移过来的数据,在Mysql中批量添加注释,修改注释
一.原因 数据是从达梦数据库中迁移过来的,迁移完成注释丢失 二.方法 利用 information_schema.COLUMNS 这个表 三.执行步骤 1.这是达梦数据库导出的注释 2.达梦的数数据库 ...
- 达梦数据库中各种表的管理
上海蒙马软件技术有限公司 2021年7月28日 达梦数据库有:普通表.分区表.临时表.堆表(rowid).列存表(HUGE).外部表等 默认的普通表是索引组织部表(索引组织表,无主键利用 rowid, ...
- 【DM】达梦数据库中分区表的创建及查询操作
文章目录 一.摘要 二.演示 范围分区表 LIST分区表 哈希分区表 多级分区表 一.摘要 达梦数据库对表是进行水平分区的:水平分区的方式有以下几种: 范围分区表 LIST分区表 哈希分区表 多级分区 ...
- 达梦数据库中的注释的使用
在管理规模较大的数据库时,我们往往需要面对大量的表与视图,与此同时在表与视图中可能会存在着许多的字段,让人难以迅速分辨,不利于对于数据库对象的管理.除了在命名时,对于有意义的表.视图及列,应尽量赋予具 ...
- 达梦数据库中字符和字节的介绍
参数简介 在使用DMINIT初始化数据库的时候,我们有以下这两个跟字符集有关的参数,UNICODE_FLAG和LENGTH_IN_CHAR. UNICODE_FALG : 此参数表示了数据库中所有数据 ...
- 达梦数据库中如何删除重复数据
我们在数据库运维环境中有时会出现需删除表中重复数据的情况,比如说,导入时重复导入了,这时候我们怎么办?如何删除重复的数据,保证数据的正确性和完整性? 测试环境: 操作系统:中标麒麟6.0 数据库系统: ...
- 达梦数据库中服务器日志的开关
在配置文件dm.ini中,修改SVR_LOG参数,0是关闭,1是开启.开启后可根据需求修改sqllog.ini文件.改完后重启服务.
- 达梦数据库中的nvl,ifnull,和isnull函数
这三个函数虽然都是判断空的,对于一般的数据类型处理上也没有什么不同,但是当处理clob,blob这种大字段时,他们不一样的地方便显示了出来. 1.nvl select nvl(content,'') ...
- 【DM】达梦数据库中的触发器实例
建测试数据集 DROP TABLE IF EXISTS TEST; CREATE TABLE TEST(ID INT IDENTITY(1,1),NAME VARCHAR(50),CITY VARCH ...
最新文章
- SAE上安装第三方模块
- [整合] 解决 Dell T640 安装显卡后风扇转速不降低
- Java 反射的理解
- 搭建K8s集群(kubeadm方式)-操作系统初始化
- linux 企业邮件服务器_什么是Linux服务器,为什么您的企业需要一个?
- [转载] 详细介绍Python函数中的默认参数
- 国产数据库激荡 40 年
- 趣味概率问题:脑洞蒙特卡洛模型,来招聘!!!
- cisco 交换机 定期 自动 备份配置 -linux,cisco 交换机自动备份配置
- 使用JavaScript重定向到其他网页
- vs下qt混合编译错误:MOC问题
- 关于纹理勾选sRGB的疑惑
- nmon analyser 使用中报错“宏”不可用的问题及处理
- Python员工信息作业
- 关于excel导入带图片
- 万能数据库查询分析器使用技巧之(十)
- Gym - 101128H:Sheldon Numbers
- 知乎:嵌入式真的没前途?
- 计算机不显示苹果手机储存,电脑里手机在itunes里不显示
- 手把手搭建一个完整的ssm登录注册项目(适合新手)